Appeler des transactions

Les transactions d'appel permettent d'appeler une ou plusieurs commandes de cluster sur un nœud cible. Elle est semblable aux appels de procédure à distance effectués vers une commande définie dans le cluster.

Comme les transactions d'écriture, les transactions d'appel sont compatibles avec les transactions avec et sans délai. Pour en savoir plus sur les transactions avec délai, consultez la section Actions avec et sans délai.

Transaction d'appel sans délai

Séquence d'opérations d'une transaction d'appel non temporisée
Figure 1 : Transaction d'appel sans délai

Action d'appel de requête

Direction : Initiateur -> Cible

Comme pour les actions de requête de lecture et d'écriture, dans cette action, l'initiateur fournit à la cible les éléments suivants :

  • Invoke Requests : liste des chemins d'accès aux commandes de cluster, ainsi que des arguments facultatifs des commandes, appelés Command Fields (Champs de commande).
  • Timed Request (Requête programmée) : indicateur qui indique si cette action fait partie d'une transaction d'appel programmé.
  • Supprimer la réponse : indicateur indiquant si l'action d'appel de réponse doit être supprimée.
  • ID d'interaction : entier utilisé pour faire correspondre l'action de requête d'appel à l'action de réponse d'appel.

Appeler l'action de réponse

Direction : Cible -> Initiateur

Une fois que la cible a reçu l'action de requête d'appel, elle finalise la transaction avec une action de réponse d'appel qui contient les éléments suivants :

  • Réponses d'appel : liste des réponses aux commandes ou de l'état de chaque demande d'appel envoyée.
  • ID d'interaction : entier utilisé pour faire correspondre l'action de réponse à l'action de requête d'appel.

Restrictions d'invocation sans durée

L'action de requête d'appel peut être un groupcast, mais dans ce cas, l'indicateur Supprimer la réponse doit être défini. L'idée est d'éviter que le réseau ne soit inondé par les réponses simultanées de chaque membre d'un groupe.

Pour activer ce comportement, le chemin d'accès utilisé dans la liste "Appeler les requêtes" peut contenir des groupes ou des caractères génériques, mais uniquement dans le champ "Point de terminaison". De plus, si l'action est une diffusion de groupe, cette transaction se termine sans réponse.

Transactions d'appel temporisées

Comme les transactions d'écriture temporisées, les transactions d'appel temporisées commencent également par l'action de requête temporisée.

Séquence d'opérations d'une transaction d'appel temporisé
Figure 2 : Transaction d'appel temporisé

Action de demande temporisée

Direction : Initiateur -> Cible

Un initiateur lance la transaction en envoyant cette action qui contient :

  • Délai avant expiration : nombre de millisecondes pendant lesquelles cette transaction peut rester ouverte. Pendant cette période, la prochaine action envoyée par l'initiateur sera considérée comme valide.

Une fois l'action de requête temporisée reçue, la cible doit l'accuser de réception avec une action de réponse d'état. Une fois que l'initiateur a reçu une action de réponse d'état ne signalant aucune erreur, il envoie une action de requête d'appel.

Action d'appel de requête

Identique à l'action de requête d'appel décrite précédemment.

Action de réponse à l'appel

Identique à l'action de réponse d'appel décrite précédemment.

Restrictions d'invocation programmée

Toutes les commandes d'appel peuvent être appelées sur une interaction chronométrée. Les actions de requête programmée, d'appel de requête et d'appel de réponse sont réservées à Unicast. Elles ne peuvent donc pas être utilisées comme groupcast sur les transactions d'appel programmé.

L'action "Appeler l'action de requête" accepte l'utilisation de chemins d'accès avec des groupes et des caractères génériques, mais l'action "Appeler l'action de réponse" n'accepte pas l'utilisation de caractères génériques.