Partager via


MC_POST_ON_RECEIPT

Le verbe MC_POST_ON_RECEIPT permet à l’application de s’inscrire pour recevoir une notification lorsque les données ou l’état arrivent à l’unité logique locale (LU) sans la recevoir en même temps. Ce verbe ne peut être émis qu’en état RECEIVE et n’entraîne jamais de modification de l’état de conversation.

Lorsque le programme de transaction émet ce verbe, APPC retourne immédiatement le contrôle au TP. Lorsque les conditions spécifiées sont satisfaites, 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 verbe (VCB) pour déterminer si des données ou des notifications d’état sont arrivées à l’unité logique locale et émet un verbe MC_RECEIVE_IMMEDIATE ou MC_RECEIVE_AND_WAIT pour recevoir réellement les données ou la notification d’état.

Le verbe MC_POST_ON_RECEIPT implémente à la fois les verbes POST_ON_RECEIPT et TEST , comme décrit dans le manuel du programmeur de transactions IBM pour LU Type 6.2.

La structure suivante décrit le bloc de contrôle 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 de l’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.

réserver1
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 est retournée par TP_STARTED dans l’appel du TP 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 l’appel du TP ou par RECEIVE_ALLOCATE dans le TP appelé.

réserver2
Champ réservé.

réserver3
Champ réservé.

réserver4
Champ réservé.

max_len
Paramètre fourni. Spécifie la longueur des données qui déclenchent APPC pour publier une notification au TP.

réserver5
Champ réservé.

réserver6
Champ réservé.

réserver7
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 qu’un appel soit effectué et une fois le verbe terminé.

Codes de retour

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

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 le programme à recevoir.

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 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_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 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’une défaillance de lien. La raison de l’échec est journalisée dans le journal des erreurs système. Réessayez l’allocation.

AP_CONVERSATION_TYPE_MISMATCH

Code de retour secondaire ; l’unité logique partenaire ou tp 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 spécifiée des données PIP, mais le tp partenaire n’a pas besoin de ces données, ou l’unité logique du partenaire ne le prend pas en charge.

AP_PIP_NOT_SPECIFIED_CORRECTLY

Code de retour secondaire ; le tp partenaire requiert des données PIP, mais la demande d’allocation spécifiée n’a pas de données PIP ou un nombre incorrect de paramètres.

AP_SECURITY_NOT_VALID

Code de retour secondaire ; l’identificateur de l’utilisateur ou le mot de passe spécifié dans la demande d’allocation n’a pas été accepté par l’unité logique partenaire.

AP_SYNC_LEVEL_NOT_SUPPORTED

Code de retour secondaire ; le tp partenaire ne prend pas en charge le sync_level (AP_NONE ou AP_CONFIRM_SYNC_LEVEL) spécifié 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é logique 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 ; l’unité logique 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 journalisé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 ; l’unité logique distante a rejeté la demande d’allocation, car elle n’a pas pu démarrer le tp partenaire demandé. La condition peut être temporaire, telle qu’un délai d’attente. La raison de l’erreur peut être journalisée sur le nœud distant. Réessayez l’allocation.

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_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 provoqué l’envoi d’une demande de MC_DEALLOCATE .

    AP_DEALLOC_NORMAL
    Code de retour principal ; le tp partenaire a désalloué la conversation sans demander de confirmation et émis MC_DEALLOCATE avec dealloc_type défini sur l’une des options suivantes :

  • 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 pendant que la conversation était dans l’état SEND. Les données n’ont pas été tronquées.

    AP_PROG_ERROR_PURGING
    Code de retour principal ; 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 qui ne sont pas encore reçues, sont vidées.

    AP_PROG_ERROR_TRUNC
    Code de retour principal ; le tp partenaire a émis MC_SEND_ERROR pendant que la conversation était dans 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 lors de RECEIVE, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE état. 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 lors de RECEIVE, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE état. Les données envoyées au tp 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 lors de RECEIVE, PENDING_POST, CONFIRM, CONFIRM_SEND ou CONFIRM_DEALLOCATE état. Les données envoyées au TP partenaire peuvent avoir é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 :

GET_ATTRIBUTES

GET_TYPE

MC_DEALLOCATE

MC_RECEIVE_AND_WAIT

MC_RECEIVE_IMMEDIATE

MC_REQUEST_TO_SEND

MC_SEND_ERROR

MC_TEST_RTS

TP_ENDED

L’émission de l’un des verbes suivants avant la fin du verbe de MC_POST_ON_RECEIPT asynchrone 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 verbe est défini sur AP_CANCELLED).

MC_DEALLOCATE

MC_RECEIVE_AND_WAIT

MC_RECEIVE_IMMEDIATE

MC_SEND_ERROR

TP_ENDED