MC_POST_ON_RECEIPT
Le verbe MC_POST_ON_RECEIPT permet à l’application de s’inscrire pour recevoir une notification lorsque des données ou des status arrivent à l’unité logique locale (LU) sans la recevoir en même temps. Ce verbe ne peut être émis qu’à l’état RECEIVE et ne provoque jamais de changement d’état de conversation.
Lorsque le programme de transaction (TP) émet ce verbe, APPC retourne immédiatement le contrôle au TP. Lorsque les conditions spécifiées sont remplies, l’événement Win32® spécifié par le paramètre sema est signalé et le verbe se termine. Ensuite, le TP examine le code de retour dans le bloc de contrôle des verbes (VCB) pour déterminer si des données ou status notification sont arrivées à la lu locale et émet un MC_RECEIVE_IMMEDIATE ou MC_RECEIVE_AND_WAIT verbe pour recevoir réellement les données ou status notification.
Le verbe MC_POST_ON_RECEIPT implémente à la fois les verbes POST_ON_RECEIPT et TEST , comme décrit dans le manuel d’IBM Transaction Programmer pour LU Type 6.2.
La structure suivante décrit le bloc de contrôle de verbe utilisé par le verbe MC_POST_ON_RECEIPT .
Syntaxe
struct mc_post_on_receipt {
unsigned short opcode;
unsigned char opext;
unsigned char reserv1;
unsigned char primary_rc;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned short reserv2;
unsigned char reserv3;
unsigned char reserv4;
unsigned short max_len;
unsigned short reserv5;
unsigned char * reserv6;
unsigned char reserv7[5];
unsigned long sema;
};
Membres
opcode
Paramètre fourni. Spécifie le code d’opération de verbe, AP_M_POST_ON_RECEIPT.
opext
Paramètre fourni. Spécifie l’extension d’opération de verbe, AP_MAPPED_CONVERSATION.
reserv1
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 est retournée par TP_STARTED dans le TP appelant ou parRECEIVE_ALLOCATE dans le TP appelé.
conv_id
Paramètre fourni. Fournit l’identificateur de conversation. La valeur de ce paramètre est retournée par MC_ALLOCATE dans le TP appelant ou par RECEIVE_ALLOCATE dans le TP appelé.
reserv2
Champ réservé.
reserv3
Un champ réservé.
reserv4
Un champ réservé.
max_len
Paramètre fourni. Spécifie la longueur des données qui déclenche APPC pour publier une notification au TP.
reserv5
Un champ réservé.
reserv6
Un champ réservé.
reserv7
Un champ réservé.
Sema
Paramètre fourni. Spécifie le handle d’un événement Win32. L’événement doit avoir été créé par le TP et le TP est chargé de s’assurer qu’il est réinitialisé avant l’appel et une fois le verbe terminé.
Codes de retour
AP_OK
Code de retour principal ; indique que le verbe s’est exécuté correctement.
AP_DATA
Code de retour secondaire ; les données sont disponibles pour que le programme reçoive.
AP_NOT_DATA
Code de retour secondaire ; les informations autres que les données sont disponibles pour que le programme reçoive.
AP_CANCELLED
Code de retour principal ; le verbe a été annulé.
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 attribué 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_INVALID_SEMAPHORE_HANDLE
Code de retour secondaire ; le paramètre sema n’a pas été défini sur une valeur valide.
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_ALLOCATION_ERROR
Code de retour principal ; APPC n’a pas pu allouer une conversation. L’état de la conversation est défini sur RESET.
Ce code peut être retourné par le biais d’un verbe émis après MC_ALLOCATE.
AP_ALLOCATION_FAILURE_NO_RETRY
Code de retour secondaire ; la conversation ne peut pas être allouée en raison d’une condition permanente, telle qu’une erreur de configuration ou une erreur de protocole de session. Pour déterminer l’erreur, l’administrateur système doit examiner le fichier journal des erreurs. Ne réessayez pas l’allocation tant que l’erreur n’a pas été corrigée.
AP_ALLOCATION_FAILURE_RETRY
Code de retour secondaire ; la conversation n’a pas pu être allouée en raison d’une condition temporaire, telle qu’un échec de liaison. La raison de l’échec est consignée dans le journal des erreurs système. Réessayez l’allocation.
AP_CONVERSATION_TYPE_MISMATCH
Code de retour secondaire ; l’unité lu ou tp partenaire ne prend pas en charge le type de conversation (de base ou mappé) spécifié dans la demande d’allocation.
AP_PIP_NOT_ALLOWED
Code de retour secondaire ; la demande d’allocation a spécifié des données PIP, mais soit le tp partenaire n’a pas besoin de ces données, soit l’unité lu partenaire ne les prend pas en charge.
AP_PIP_NOT_SPECIFIED_CORRECTLY
Code de retour secondaire ; le TP partenaire nécessite des données PIP, mais la demande d’allocation n’a spécifié aucune donnée PIP ou un nombre incorrect de paramètres.
AP_SECURITY_NOT_VALID
Code de retour secondaire ; l’identificateur utilisateur ou le mot de passe spécifié dans la demande d’allocation n’a pas été accepté par l’unité lu partenaire.
AP_SYNC_LEVEL_NOT_SUPPORTED
Code de retour secondaire ; le TP partenaire ne prend pas en charge les sync_level (AP_NONE ou AP_CONFIRM_SYNC_LEVEL) spécifiés dans la demande d’allocation, ou le sync_level n’a pas été reconnu.
AP_TP_NAME_NOT_RECOGNIZED
Code de retour secondaire ; l’unité lu partenaire ne reconnaît pas le nom TP spécifié dans la demande d’allocation.
AP_TRANS_PGM_NOT_AVAIL_NO_RETRY
Code de retour secondaire ; la lu distante a rejeté la demande d’allocation, car elle n’a pas pu démarrer le TP partenaire demandé. La condition est permanente. La raison de l’erreur peut être consignée sur le nœud distant. Ne réessayez pas l’allocation tant que l’erreur n’a pas été corrigée.
AP_TRANS_PGM_NOT_AVAIL_RETRY
Code de retour secondaire ; la lu distante a rejeté la demande d’allocation, car elle n’a pas pu démarrer le TP partenaire demandé. La situation peut être temporaire, par exemple un délai d’attente. La raison de l’erreur peut être consignée sur le nœud distant. Réessayez l’allocation.
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_DEALLOC_ABEND_PROG
Code de retour principal ; la conversation a été libérée pour l’une des raisons suivantes :Le tp partenaire a émis MC_DEALLOCATE.
Le TP partenaire a rencontré un ABEND, ce qui a entraîné l’envoi d’une requête MC_DEALLOCATE par l’unité logique du partenaire.
AP_DEALLOC_NORMAL
Code de retour principal ; le TP partenaire a libéré la conversation sans demander de confirmation et a émis MC_DEALLOCATE avec dealloc_type défini sur l’un des éléments suivants :AP_CONFIRM_SYNC_LEVEL
AP_FLUSH
AP_SYNC_LEVEL avec le niveau de synchronisation de la conversation spécifié comme AP_NONE
AP_PROG_ERROR_NO_TRUNC
Code de retour principal ; le tp partenaire a émis MC_SEND_ERROR alors que la conversation était à l’état SEND. Les données n’ont pas été tronquées.AP_PROG_ERROR_PURGING
Code de retour principal ; tandis que dans l’état RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE, le tp partenaire a émis MC_SEND_ERROR. Les données envoyées mais pas encore reçues sont vidées.AP_PROG_ERROR_TRUNC
Code de retour principal ; le tp partenaire a émis MC_SEND_ERROR alors que la conversation était à l’état SEND. Les données ont été tronquées.AP_SVC_ERROR_NO_TRUNC
Code de retour principal ; le TP partenaire (ou LU partenaire) émis MC_SEND_ERROR avec err_type défini sur AP_SVC dans l’état RECEIVE, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE. Les données envoyées au tp partenaire n’ont pas été tronquées.AP_SVC_ERROR_PURGING
Code de retour principal ; le TP partenaire (ou LU partenaire) émis MC_SEND_ERROR avec err_type défini sur AP_SVC dans l’état RECEIVE, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE. Les données envoyées au programme transactionnel de partenaire ont peut-être été vidées.AP_SVC_ERROR_TRUNC
Code de retour principal ; le TP partenaire (ou LU partenaire) émis MC_SEND_ERROR avec err_type défini sur AP_SVC dans l’état RECEIVE, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE. Les données envoyées au tp partenaire ont peut-être été tronquées.
Remarques
Bien qu’un verbe MC_POST_ON_RECEIPT soit en suspens, les verbes suivants peuvent être émis sur la même conversation :
L’émission de l’un des verbes suivants avant l’achèvement du verbe asynchrone MC_POST_ON_RECEIPT entraîne l’annulation du verbe MC_POST_ON_RECEIPT (l’événement Win32 est signalé et le code de retour principal dans le bloc de contrôle de verbe est défini sur AP_CANCELLED).