Partager via


MC_PREPARE_TO_RECEIVE

Le verbe MC_PREPARE_TO_RECEIVE modifie l’état de la conversation du programme de transaction local (TP) de SEND to RECEIVE.

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

Syntaxe

  
struct mc_prepare_to_receive {  
    unsigned short   opcode;  
    unsigned char    opext;  
    unsigned char    primary_rc;  
    unsigned short   reserv2;  
    unsigned long    secondary_rc;  
    unsigned char    tp_id[8];  
    unsigned long    conv_id;  
    unsigned char    ptr_type;  
    unsigned char    locks;  
};   

Remarques

Membres

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

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 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é.

ptr_type
Paramètre fourni. Spécifie comment effectuer la modification d’état.

Utilisez AP_FLUSH pour envoyer le contenu de la mémoire tampon d’envoi de l’unité logique locale (LU) vers l’unité logique partenaire (et TP) avant de modifier l’état de la conversation en RÉCEPTION.

La valeur AP_SYNC_LEVEL utilise le niveau de synchronisation de la conversation (établi par MC_ALLOCATE) pour déterminer comment effectuer la modification de l’état.

Si le niveau de synchronisation de la conversation est AP_NONE, APPC envoie le contenu de la mémoire tampon d’envoi de l’unité logique locale au tp partenaire avant de changer l’état de la conversation en RECEIVE. Si le niveau de synchronisation est AP_CONFIRM_SYNC_LEVEL, APPC envoie le contenu de la mémoire tampon d’envoi de l’unité logique locale et une demande de confirmation au tp partenaire. Lors de la réception de la confirmation du TP partenaire, APPC modifie l’état de la conversation en réception. Si, toutefois, le TP partenaire signale une erreur, l’état passe à RECEIVE ou RESET. Consultez les remarques de cette rubrique.

Serrures
Paramètre fourni. Spécifie quand APPC doit retourner le contrôle au TP local.

Utilisez ce paramètre uniquement si ptr_type est défini sur AP_SYNC_LEVEL et le niveau de synchronisation de la conversation, établi par MC_ALLOCATE, est AP_CONFIRM_SYNC_LEVEL. (Sinon, le paramètre est ignoré.)

  • AP_LONG indique que l’APPC retourne le contrôle au TP local lorsque la confirmation et les données suivantes du tp partenaire arrivent à l’unité logique locale. (Cette méthode entraîne une utilisation plus efficace du réseau, mais nécessite un temps plus long pour retourner le contrôle au TP local.)

  • AP_SHORT indique que l’APPC retourne le contrôle au TP local lorsque la confirmation du tp partenaire arrive à l’unité logique locale.

    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_P_TO_R_INVALID_TYPE

    Code de retour secondaire ; le paramètre ptr_type 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_P_TO_R_NOT_SEND_STATE

    Code de retour secondaire ; la conversation n’était pas dans l’état SEND.

    AP_P_TO_R_NOT_LL_BDY

    Code de retour secondaire ; le TP local n’a pas terminé l’envoi d’un enregistrement logique.

    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_CONV_FAILURE_NO_RETRY
    Code de retour principal ; la conversation a été arrêtée en raison d’une condition permanente, telle qu’une erreur de protocole de session. L’administrateur système doit examiner le journal des erreurs système pour déterminer la cause de l’erreur. Ne réessayez pas la conversation tant que l’erreur n’a pas été corrigée.

    AP_CONV_FAILURE_RETRY
    Code de retour principal ; la conversation a été arrêtée en raison d’une erreur temporaire. Redémarrez le TP pour voir si le problème se produit à nouveau. Si c’est le cas, l’administrateur système doit examiner le journal des erreurs pour déterminer la cause de l’erreur.

    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_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_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.

    AP_DEALLOC_ABEND
    Code de retour principal ; la conversation a été libérée pour l’une des raisons suivantes :

  • Le tp partenaire a émis MC_DEALLOCATE avec dealloc_type défini sur AP_ABEND .

  • Le tp partenaire a rencontré un ABEND, ce qui a provoqué l’envoi d’une demande de MC_DEALLOCATE .

    Remarques

    Avant de modifier l’état de la conversation, ce verbe effectue l’équivalent de l’un des éléments suivants :

  • MC_FLUSH, en envoyant le contenu de la mémoire tampon d’envoi de l’unité logique locale à l’unité logique partenaire (ET TP).

  • MC_CONFIRM, en envoyant le contenu de la mémoire tampon d’envoi de l’unité logique locale et une demande de confirmation au TP partenaire.

    Une fois que ce verbe a réussi à s’exécuter, le TP local peut recevoir des données.

    La conversation doit être à l’état SEND lorsque le TP émet ce verbe.

    Les modifications d’état, résumées dans le tableau suivant, sont basées sur la valeur de primary_rc.

primary_rc Nouvel état
AP_OK RECEVOIR
AP_ALLOCATION_ERROR RÉINITIALISER
AP_CONV_FAILURE_RETRY RÉINITIALISER
AP_CONV_FAILURE_NO_RETRY RÉINITIALISER
AP_DEALLOC_ABEND RÉINITIALISER
AP_DEALLOC_ABEND_PROG RÉINITIALISER
AP_DEALLOC_ABEND_SVC RÉINITIALISER
AP_DEALLOC_ABEND_TIMER RÉINITIALISER
AP_PROG_ERROR_PURGING RECEVOIR
AP_SVC_ERROR_PURGING RECEVOIR

La conversation ne passe pas à l’état SEND pour le tp partenaire tant que le tp partenaire ne reçoit pas l’une des valeurs suivantes via le paramètre what_rcvd d’un verbe de réception suivant :