Partager via


MC_CONFIRMED

Le verbe MC_CONFIRMED répond à une demande de confirmation du programme de transaction partenaire (TP). Il informe le tp partenaire que le TP local n’a pas détecté d’erreur dans les données reçues. Étant donné que le TP qui émet la demande de confirmation attend une confirmation, MC_CONFIRMED synchronise le traitement des deux TPS.

La structure suivante décrit le bloc de contrôle de verbe (VCB) utilisé par le verbe MC_CONFIRMED .

Syntaxe


struct mc_confirmed {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned long   conv_id;  
    unsigned char   rts_rcvd;  
};   

Membres

Opcode
Paramètre fourni. Spécifie le code de l’opération de verbe, AP_M_CONFIRMED.

opext
Paramètre fourni. Spécifie l’extension d’opération de verbe, AP_MAPPED_CONVERSATION.

réserver2
Champ réservé.

primary_rc
Paramètre retourné. Spécifie le code de retour principal défini par APPC à l’achèvement du verbe. Les codes de retour valides varient en fonction du verbe APPC émis. Consultez les codes de retour pour obtenir des codes d’erreur valides pour ce verbe.

secondary_rc
Paramètre retourné. Spécifie le code de retour secondaire défini par APPC à l’achèvement du verbe. Les codes de retour valides varient en fonction du verbe APPC émis. Consultez les codes de retour pour obtenir des codes d’erreur valides pour ce verbe.

tp_id
Paramètre fourni. Identifie le TP local. La valeur de ce paramètre a été retournée par TP_STARTEDdans l’appel du TP ou par RECEIVE_ALLOCATE dans le TP appelé.

conv_id
Paramètre fourni. Identifie la conversation établie entre les deux TPS. La valeur de ce paramètre est retournée par MC_ALLOCATE dans l’appel du TP ou par RECEIVE_ALLOCATE dans le TP appelé.

rts_rcvd
Paramètre retourné. Indique si le TP partenaire a émis MC_REQUEST_TO_SEND, qui demande au TP local de modifier l’état RECEIVE de la conversation.

Pour passer à l’état RECEIVE, le TP local peut utiliser MC_PREPARE_TO_RECEIVE, MC_RECEIVE_AND_WAIT ou MC_RECEIVE_AND_POST.

Codes de retour

AP_OK
Code de retour principal ; le verbe exécuté avec succès.

AP_PARAMETER_CHECK
Code de retour principal ; le verbe n’a pas été exécuté en raison d’une erreur de paramètre.

AP_BAD_CONV_ID

Code de retour secondaire ; la valeur de conv_id ne correspondait pas à un identificateur de conversation affecté par APPC.

AP_BAD_TP_ID

Code de retour secondaire ; la valeur de tp_id ne correspondait pas à un identificateur TP attribué par APPC.

AP_STATE_CHECK
Code de retour principal ; le verbe n’a pas exécuté, car il a été émis dans un état non valide.

AP_CONFIRMED_BAD_STATE

Code de retour secondaire ; la conversation n’est pas dans l’état CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE.

AP_COMM_SUBSYSTEM_ABENDED
Code de retour principal ; indique l’une des conditions suivantes :

  • Le nœud utilisé par cette conversation a rencontré un ABEND.

  • La connexion entre le tp et le nœud PU 2.1 a été interrompue (erreur LAN).

  • Le SnaBase sur l’ordinateur du TP a rencontré un ABEND.

    L’administrateur système doit examiner le journal des erreurs pour déterminer la raison de l’ABEND.

    AP_COMM_SUBSYSTEM_NOT_LOADED
    Code de retour principal ; un composant requis n’a pas pu être chargé ou arrêté lors du traitement du verbe. Ainsi, la communication n’a pas pu avoir lieu. Contactez l’administrateur système pour obtenir une action corrective.

    AP_CONVERSATION_TYPE_MIXED
    Code de retour principal ; le TP a émis des verbes de conversation de base et mappés. Un seul type peut être émis dans une seule conversation.

    AP_INVALID_VERB_SEGMENT
    Code de retour principal ; le VCB s’étend au-delà de la fin du segment de données.

    AP_STACK_TOO_SMALL
    Code de retour principal ; la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de la pile de votre application.

    AP_CONV_BUSY
    Code de retour principal ; il ne peut y avoir qu’un seul verbe de conversation en suspens à la fois sur n’importe quelle conversation. Cela peut se produire si le TP local a plusieurs threads et que plusieurs threads émettent des appels APPC à l’aide du même conv_id.

    AP_THREAD_BLOCKING
    Code de retour principal ; le thread appelant est déjà dans un appel bloquant.

    AP_UNEXPECTED_DOS_ERROR
    Code de retour principal ; le système d’exploitation a retourné une erreur à APPC lors du traitement d’un appel APPC à partir du TP local. Le code de retour du système d’exploitation est retourné via le secondary_rc. Il apparaît dans l’ordre d’échange d’octets Intel. Si le problème persiste, consultez l’administrateur système.

Remarques

La conversation doit se trouver dans l’un des états suivants lorsque le TP émet ce verbe :

  • CONFIRMER

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    Le nouvel état est déterminé par l’ancien état , l’état de la conversation lorsque le tp local a émis MC_CONFIRMED. L’ancien état est indiqué par la valeur du paramètre what_rcvd du verbe de réception précédent. Les modifications d’état suivantes sont possibles :

Ancien état Nouvel état
CONFIRMER RECEVOIR
CONFIRM_SEND ENVOYER
CONFIRM_DEALLOCATE RÉINITIALISER

Demandes de confirmation

Une demande de confirmation est émise par l’un des verbes suivants dans le TP partenaire :

  • MC_CONFIRM

  • MC_PREPARE_TO_RECEIVE si ptr_type est défini sur AP_SYNC_LEVEL et que le niveau de synchronisation de la conversation (établi par MC_ALLOCATE) est AP_CONFIRM_SYNC_LEVEL

  • MC_DEALLOCATE si dealloc_type est défini sur AP_SYNC_LEVEL et que le niveau de synchronisation de la conversation (établi par MC_ALLOCATE) est AP_CONFIRM_SYNC_LEVEL

  • MC_SEND_DATA si le type est défini sur AP_SEND_DATA_CONFIRM et que le niveau de synchronisation de la conversation (établi par MC_ALLOCATE) est AP_CONFIRM_SYNC_LEVEL

    Une demande de confirmation est reçue par le TP local via le paramètre what_rcvd de l’un des verbes suivants :

  • MC_RECEIVE_IMMEDIATE

  • MC_RECEIVE_AND_WAIT

  • MC_RECEIVE_AND_POST

    MC_CONFIRMED est émis par le tp local uniquement si what_rcvd contient l’une des valeurs suivantes :

  • AP_CONFIRM_WHAT_RECEIVED

  • AP_CONFIRM_SEND

  • AP_CONFIRM_DEALLOCATE

    Si le paramètre rtn_status est défini sur AP_YES, what_rcvd peut également contenir les valeurs suivantes :

  • AP_DATA_COMPLETE_CONFIRM

  • AP_DATA_COMPLETE_CONFIRM_SEND

  • AP_DATA_COMPLETE_CONFIRM_DEALL