CONFIRMÉ
Le verbe CONFIRM 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, CONFIRM synchronise le traitement des deux TPs.
La structure suivante décrit le bloc de contrôle de verbe (VCB) utilisé par le verbe CONFIRM .
Syntaxe
struct 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;
};
Notes
Members (Membres)
opcode
Paramètre fourni. Spécifie le code d’opération de verbe, AP_B_CONFIRMED.
opext
Paramètre fourni. Spécifie l’extension d’opération de verbe, AP_BASIC_CONVERSATION.
reserv2
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 dépendent du verbe APPC émis. Pour connaître les codes d’erreur valides de ce verbe, consultez Codes de retour.
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 dépendent du verbe APPC émis. Pour connaître les codes d’erreur valides de ce verbe, consultez Codes de retour.
tp_id
Paramètre fourni. Identifie le TP local. La valeur de ce paramètre a été retournée par TP_STARTEDdans le tp d’appel 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 ALLOCATE dans le tp d’appel 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 la conversation à l’état RECEIVE.
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 ; indique que le verbe s’est exécuté correctement.
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 correspond pas à un identificateur de conversation attribué par APPC.
AP_BAD_TP_ID
Code de retour secondaire ; la valeur de tp_id ne correspond pas à un identificateur TP attribué par APPC.
AP_STATE_CHECK
Code de retour principal ; le verbe n’a pas été 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 à l’état CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE.
AP_COMM_SUBSYSTEM_ABENDED
Code de retour principal ; indique l’une des situations suivantes :
Le nœud utilisé par cette conversation a rencontré un abandon (ABEND).
La connexion a été interrompue entre le programme transactionnel et le nœud PU 2.1 (erreur LAN).
Le processus SnaBase qui se déroule sur l’ordinateur du programme transactionnel a rencontré un abandon (ABEND).
L’administrateur système doit examiner le journal des erreurs pour déterminer la raison de l’abandon.
AP_COMM_SUBSYSTEM_NOT_LOADED
Code de retour principal ; indique qu’il n’a pas été possible de charger un composant requis ou d’y mettre fin lors du traitement du verbe. Par conséquent, la communication n’a pas pu être établie. Contactez l’administrateur système pour mettre en place 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 même conversation.AP_INVALID_VERB_SEGMENT
Code de retour principal ; indique que le bloc de contrôle de verbe s’étend au-delà de la fin du segment de données.AP_STACK_TOO_SMALL
Code de retour principal ; indique que la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de 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 ; indique que le thread appelant se trouve déjà dans un appel de blocage.AP_UNEXPECTED_DOS_ERROR
Code de retour principal ; indique que le système d’exploitation a retourné une erreur à APPC lors du traitement d’un appel APPC à partir du programme transactionnel local. Le code de retour du système d’exploitation a été retourné via secondary_rc. Il apparaît dans l’ordre Intel avec permutation d’octets. Si le problème persiste, consultez l’administrateur système.Remarques
La conversation doit être 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, c’est-à-dire l’état de la conversation lorsque le tp local a émis CONFIRM. L’ancien état est indiqué par la valeur du paramètre what_rcvd du verbe de réception précédent. Les changements d’état suivants sont possibles :
Ancien état | Nouvel état |
---|---|
CONFIRMER | RECEIVE |
CONFIRM_SEND | SEND |
CONFIRM_DEALLOCATE | RESET |
Demandes de confirmation
Une demande de confirmation est émise par l’un des verbes suivants dans le tp partenaire :
PREPARE_TO_RECEIVE si ptr_type est défini sur AP_SYNC_LEVEL et que le niveau de synchronisation de la conversation (établi par ALLOCATE) est AP_CONFIRM_SYNC_LEVEL
DEALLOCATE si dealloc_type est défini sur AP_SYNC_LEVEL et que le niveau de synchronisation de la conversation (établi par ALLOCATE) est AP_CONFIRM_SYNC_LEVEL
SEND_DATA si type est défini sur AP_SEND_DATA_CONFIRM et que le niveau de synchronisation de la conversation (établi par 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 :
-
CONFIRM 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
Pour les conversations de base, what_rcvd peuvent également contenir les valeurs suivantes :
AP_DATA_CONFIRM
AP_DATA_CONFIRM_SEND
AP_DATA_CONFIRM_DEALLOCATE