Traitement des confirmations (CPI-C)
La séquence d’événements pour le traitement de confirmation est la suivante :
Établissez le niveau de synchronisation.
Envoyez une demande de confirmation.
Recevoir des données et une demande de confirmation.
Répondre à la demande de confirmation.
Libérez la conversation.
À l’aide du traitement de confirmation, un programme de transaction (TP) envoie une demande de confirmation avec les données. Le TP partenaire confirme la réception des données ou indique qu’une erreur s’est produite. Chaque fois que les deux fournisseurs de services échangent une demande de confirmation et une réponse, ils sont synchronisés.
Notes
Bien que l’exemple de cette section ne le montre pas, n’importe quel TP peut envoyer ou recevoir des données, que le TP soit le TP appelant ou le TP appelant.
Le tableau suivant illustre les étapes impliquées dans le traitement de confirmation.
Étape | Émis par le TP appelant | Émis par le TP invokable |
---|---|---|
1 | Initialize_Conversation | |
2 | Set_Sync_Level (sync_level=CM_CONFIRM) | |
3 | Allouer | |
4 | Send_Data | |
5 | Confirmer | |
6 | Accept_Conversation | |
7 | Réception (data_received= CM_COMPLETE_DATA_RECEIVED) (status_received= CM_CONFIRM_RECEIVED) | |
8 | Confirmé | |
9 | (return_code=CM_OK) | |
10 | Send_Data | |
11 | Libérer | |
12 | Recevoir | |
13 | (status_received= CM_CONFIRM_DEALLOC_RECEIVED) | |
14 | Confirmé | |
15 | (return_code=CM_OK) |
Établissement du niveau de synchronisation
L’appel Set_Sync_Level vous permet de remplacer le niveau de synchronisation par défaut de la conversation. Le niveau de synchronisation est l’une des caractéristiques de la conversation. Il existe deux niveaux de synchronisation possibles :
CM_CONFIRM, en vertu de laquelle les fournisseurs de services peuvent demander la confirmation de la réception des données et répondre à ces demandes.
CM_NONE, la valeur par défaut, sous laquelle le traitement de confirmation n’a pas lieu.
L’appel Initialize_Conversation définit les caractéristiques par défaut d’une conversation. Plusieurs appels commencent par Set_. Ces appels vous permettent de remplacer les caractéristiques de conversation par défaut.
Envoi d’une demande de confirmation
L’émission de l’appel Confirm a deux effets :
Il vide la mémoire tampon d’envoi de la lu locale et envoie toutes les données contenues dans la mémoire tampon au tp partenaire.
Il envoie une demande de confirmation que le TP partenaire reçoit via le paramètre status_received d’un appel de réception .
Après avoir émis Confirm, le TP local attend la confirmation du TP partenaire.
Réception d’une demande de confirmation
Le paramètre status_received de l’appel de réception indique toute action future requise par le TP local.
Dans l’exemple, la première réception a une status_received de CM_CONFIRM_RECEIVED, ce qui indique qu’une confirmation est requise avant que le TP partenaire puisse continuer.
Réponse à une demande de confirmation
Le tp partenaire émet l’appel Confirmé pour confirmer la réception des données. Cela permet au TP local de reprendre le traitement.
Désaffectation de la conversation
Étant donné que le niveau de synchronisation de la conversation est défini sur CM_CONFIRM, Le désallouer envoie une demande de confirmation avec les données vidées de la mémoire tampon.
Pour le deuxième appel de réception , status_received est CM_CONFIRM_DEALLOC_RECEIVED, ce qui indique que le tp partenaire a besoin d’une confirmation, générée par l’appel confirmé , avant que la conversation puisse être libérée.