Manuel Utilisateur > Objets > Liste alphabétique > Utilisation des objets Sync

Utilisation des objets Sync

Ce document décrit un domaine d'application typique des objets Sync. Il décrit comment un objet Sync contrôle l'accès à une ressource (une base de données par exemple).

Cet exemple est basé sur les hypothèses suivantes :

* Trois tâches au maximum peuvent accéder à la base de données simultanément.
* L'accès exclusif à la base de données par une tâche doit également être possible.

Grâce aux définitions de statuts, de valeurs et d'actions, l'objet Sync permet de nombreux champs d'applications. Cet exemple met l'accent sur les principes de l'utilisation des objets Sync.

1. Créer un objet Sync

L'objet Sync peut présenter deux statuts :

Ouvrez l'onglet Sync et spécifiez les deux statuts, accompagnés d'une description. Vous pouvez choisir librement les noms. Les statuts sont associés à des valeurs. Dans cet exemple, la valeur "0" est utilisée pour le premier statut (une seule tâche utilise la base de données de façon exclusive), le second peut prendre des valeurs comprises entre "0" (aucune tâche n'utilise la base de données) et "3" (3 tâches au maximum peuvent accéder à la base de données simultanément). Ces valeurs ne sont pas indiquées explicitement dans l'objet Sync, elles sont intégrées lors de la définition des actions (voir ci-dessous).

L'illustration suivante montre la tâche (job DB.USE) qui doit être synchronisée. Comme tous les objets activables, elle comporte un onglet Sync qui peut être utilisé pour spécifier des objets Sync et les actions qui modifient le statut de l'objet Sync.

Dans l'objet Sync, définissons maintenant quatre actions :

  1. Accès normal (partagé) à la base de données
  2. Accès exclusif à la base de données
  3. Libération après un accès normal (partagé)
  4. Libération après un accès exclusif

Saisissez ces actions dans la tableau de la partie inférieure de l'onglet Sync. Vous pouvez choisir librement le nom des actions. Le tableau Statuts définis affiche les statuts définis précédemment. Nous avons défini les valeurs indiquées ci-dessous, mais elles n'existent pas encore de manière écrite :

Abordons maintenant les Actions définies dans le détail :

USE
L'action USE peut être déclenchée si l'objet Sync a le statut SHARE et une valeur inférieure à trois. Cette action conserve le statut existant, mais augmente la valeur de un. Elle est prévue pour les tâches normales qui utilisent la base de données. Ces tâches vérifient qu'une utilisation multiple de la base de données est possible. Elles vérifient aussi que la valeur est inférieure à trois, car seulement trois tâches sont autorisées à utiliser la base de données simultanément (en accord avec les définitions de cet exemple). La valeur est augmentée de un, car une tâche de plus utilise maintenant la base de données.

USE_EXCLUSIVE
L'action USE_EXCLUSIVE peut être déclenchée si l'objet Sync a le statut SHARE et une valeur égale à zéro. Cette action n'est possible que si aucune autre tâche n'utilise la base de données. Elle définit le statut EXCLUSIVE afin qu'aucune autre tâche n'utilise la base de données.

RELEASE
L'action RELEASE intervient dans deux cas. Dans le premier cas, l'action s'applique au statut SHARE et la valeur doit être supérieure à 0. Une tâche normale se termine après avoir utilisé la base de données. Le statut existant est conservé, mais la valeur est réduite de un. Dans le second cas, l'action concerne le statut EXCLUSIVE. Une tâche qui a utilisé la base de données exclusivement se termine maintenant et, ce faisant, l'utilisation partagée de la base de données est à nouveau possible.

Toutes les actions décrites ci-dessus sont spécifiées dans le tableau ci-dessous :

Enfin, cliquez sur l'onglet Attributs qui affiche le statut et la valeur courante de l'objet Sync. Sélectionnez un statut de départ avant d'intégrer cet objet Sync dans une tâche. Dans cet exemple le statut de départ est SHARE et la valeur 0. Enregistrez et fermez l'objet Sync.

2.

Intégrer l'objet Sync dans une tâche

Cette étape montre comment un objet Sync est intégré dans des tâches. L'illustration ci-dessous montre un job utilisant l'objet Sync pour accéder à la base de données. Le job démarre et exécute l'action USE. Il vérifie si la base de données peut être utilisée de façon partagée, et combien de tâches l'utilisent. Le job ne peut démarrer que si moins de trois tâches utilisent la base de données. L'action définie sous "Sinon" est exécutée si la limite de 3 tâches a été atteinte. Dans ce cas, le job attend la fin d'une des tâches. Dès que cela se produit, le job en attente démarre et soit accède à la base de données soit échoue et l'action RELEASE est exécutée.

Le job suivant utilise l'objet Sync pour accéder en exclusivité à la base de données. Le statut EXCLUSIVE a été spécifié comme statut de départ. Ainsi, aucune autre tâche ne peut accéder à la base de données. Cette action de démarrage n'est possible que si aucune autre tâche n'utilise la base de données. L'action RELEASE libère la base de données pour qu'elle soit de nouveau disponible pour une utilisation multiple.

 

Rubriques connexes :

Objets Sync
Synchronisation de tâches dans différents Workflows