Partager via


Traitement des confirmations

La séquence d’événements pour le traitement de la confirmation est la suivante :

  1. Établissez le niveau de synchronisation.

  2. Envoyer une demande de confirmation.

  3. Recevoir des données et une demande de confirmation.

  4. Répondre à la demande de confirmation.

  5. Libérez la conversation.

    À l’aide du traitement de confirmation, un 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 TPS é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, qu’il s’agisse du TP appelant ou du TP invocable.

L’exemple suivant illustre le traitement de confirmation.

Émis par le TP appelant Émis par le tp invokable
TP_STARTED
MC_ALLOCATE
(synclevel=AP_CONFIRM_SYNC_LEVEL)
MC_SEND_DATA
(type=AP_SEND_DATA_CONFIRM)
RECEIVE_ALLOCATE
MC_RECEIVE_AND_WAIT
MC_SEND_DATA
(type=AP_SEND_DATA_DEALLOC_SYNC_LEVEL)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(rtn_status=AP_YES)
(what_rcvd= AP_DATA_COMPLETE_CONFIRM_ LIBÉRER)
MC_CONFIRMED
TP_ENDED TP_ENDED

Établissement du niveau de synchronisation

Le paramètre synclevel de MC_ALLOCATE détermine le niveau de synchronisation de la conversation. Il existe trois niveaux de synchronisation possibles :

  • AP_NONE, sous laquelle le traitement de confirmation n’a pas lieu.

  • AP_CONFIRM_SYNC_LEVEL, en vertu de laquelle les fournisseurs de services peuvent demander une confirmation de réception des données et répondre aux demandes de confirmation de données.

  • AP_SYNCPT, sous lequel les programmes de transfert fonctionnent sous la prise en charge du point de synchronisation niveau 2 pour la confirmation de la réception des données.

Envoi d’une demande de confirmation

MC_SEND_DATA de type AP_SEND_DATA_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 what_rcvd d’un verbe de réception.

    Après avoir émis MC_SEND_DATA, le TP local attend la confirmation du TP partenaire.

Réception de données et demande de confirmation

Le paramètre what_rcvd de MC_RECEIVE_AND_WAIT indique :

  • État des données reçues : complet ou incomplet.

  • Traitement futur attendu du TP local.

    Dans l’exemple, what_rcvd est AP_DATA_COMPLETE_CONFIRM, indiquant que la status est terminée et qu’une confirmation est demandée.

Réponse à une demande de confirmation

Le tp partenaire émet des MC_CONFIRMED pour confirmer la réception des données. Cela permet au TP local de reprendre le traitement.

Désaffectation de la conversation

MC_SEND_DATA envoie une demande de confirmation avec les données lorsque toutes les conditions suivantes sont remplies :

  • Le niveau de synchronisation de la conversation (établi par le paramètre synclevel de MC_ALLOCATE) est AP_CONFIRM_SYNC_LEVEL.

  • Le paramètre type de MC_SEND_DATA est défini sur AP_SEND_DATA_DEALLOC_SYNC_LEVEL.

  • Le paramètre what_rcvd de la MC_RECEIVE_AND_WAIT finale est AP_DATA_COMPLETE_CONFIRM_DEALLOCATE, indiquant qu’une confirmation de réception des données est requise avant qu’APPC libère la conversation. Le TP local attend cette confirmation jusqu’à ce que le tp partenaire ne MC_CONFIRMED.