Partager via


REQUEST_TO_SEND

Le verbe REQUEST_TO_SEND informe le programme de transaction partenaire (TP) que le TP local souhaite envoyer des données.

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

Syntaxe

  
struct request_to_send {  
    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;  
};   

Membres

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

opext
Paramètre fourni. Spécifie l’extension d’opération de verbe, AP_BASIC_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 par RECEIVE_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 ALLOCATE dans l’appel du TP ou par RECEIVE_ALLOCATE dans le TP appelé.

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_R_T_S_BAD_STATE

Code de retour secondaire ; la conversation n’est pas dans un état autorisé lorsque le TP a émis ce verbe.

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 s’est 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.

    Lorsque ce code de retour est utilisé avec ALLOCATE, il peut indiquer qu’aucun système de communication n’est trouvé pour prendre en charge l’unité logique locale (LU). (Par exemple, l’alias lu local spécifié avec TP_STARTED est incorrect ou n’a pas été configuré.) Notez que si lu_alias ou mode_name est inférieur à huit caractères, vous devez vous assurer que ces champs sont remplis d’espaces à droite. Cette erreur est retournée si ces paramètres ne sont pas remplis d’espaces, car aucun nœud n’est disponible pour satisfaire la requête ALLOCATE .

    Lorsque ALLOCATE produit ce code de retour pour un système client Microsoft Host Integration Server configuré avec plusieurs nœuds, il existe deux codes de retour secondaires comme suit :

    0xF0000001

    Code de retour secondaire ; aucun nœud n’a été démarré.

    0xF0000002

    Code de retour secondaire ; au moins un nœud a été démarré, mais l’unité logique locale (lorsque TP_STARTED est émise) n’est pas configurée sur des nœuds actifs. Le problème peut être l’un des suivants :

  • Le nœud avec l’unité logique locale n’est pas démarré.

  • L’unité logique locale n’est pas configurée.

    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 peut se trouver dans l’un des états suivants lorsque le TP émet ce verbe :

CONFIRMER

PENDING_POST (système d’exploitation/2)

RECEVOIR

Il n’y a aucune modification d’état.

La notification de demande à envoyer est reçue par le programme partenaire via le paramètre rts_rcvd des verbes suivants :

  • CONFIRMER

  • RECEIVE_AND_POST

  • RECEIVE_AND_WAIT

  • RECEIVE_IMMEDIATE

  • SEND_DATA

  • SEND_ERROR

    Il est également indiqué par une primary_rc de AP_OK sur TEST_RTS.

    La notification de demande à envoyer est envoyée immédiatement au tp partenaire ; APPC n’attend pas que la mémoire tampon d’envoi se remplit ou soit vidée. Par conséquent, la notification de demande à envoyer peut arriver hors séquence. Par exemple, si le TP local est dans l’état SEND et émet PREPARE_TO_RECEIVE suivi de REQUEST_TO_SEND, le TP partenaire, dans l’état RECEIVE, peut recevoir la notification de demande d’envoi avant de recevoir la notification d’envoi. Pour cette raison, la requête à envoyer peut être signalée à un TP par le biais d’un verbe de réception.

    En réponse à cette demande, le tp partenaire peut modifier la conversation en :

  • État RECEIVE en émettant PREPARE_TO_RECEIVE ou RECEIVE_AND_WAIT.

  • PENDING_POST’état en émettant RECEIVE_AND_POST.

    Le tp partenaire peut également ignorer la requête à envoyer.

    L’état de conversation passe à SEND pour le TP local lorsque le TP local reçoit l’une des valeurs suivantes via le paramètre what_rcvd d’un verbe de réception suivant :

  • AP_CONFIRM_SEND et réponses avec CONFIRM

  • AP_DATA_COMPLETE_CONFIRM_SEND et réponses avec CONFIRM

  • AP_DATA_CONFIRM_SEND et réponses avec CONFIRM

  • AP_SEND

    Les verbes de réception sont RECEIVE_AND_POST, RECEIVE_IMMEDIATE et RECEIVE_AND_WAIT.