Partager via


RUI_BID

Le verbe RUI_BID informe l’application RUI (Request Unit Interface) qu’un message attend la lecture à l’aide de RUI_READ.

La structure suivante décrit le membre LUA_COMMON du bloc de contrôle verbe (VCB) utilisé par RUI_BID :

La deuxième union de syntaxe décrit le membre LUA_SPECIFIC du bloc de contrôle verbe (VCB) utilisé par RUI_BID. D’autres membres de l’union sont omis pour plus de clarté :

Syntaxe

  
struct LUA_COMMON {  
    unsigned short lua_verb;  
    unsigned short lua_verb_length;  
    unsigned short lua_prim_rc;  
    unsigned long  lua_sec_rc;  
    unsigned short lua_opcode;  
    unsigned long  lua_correlator;  
    unsigned char  lua_luname[8];  
    unsigned short lua_extension_list_offset;  
    unsigned short lua_cobol_offset;  
    unsigned long  lua_sid;  
    unsigned short lua_max_length;  
    unsigned short lua_data_length;  
    char FAR *     lua_data_ptr;  
    unsigned long  lua_post_handle;  
    struct LUA_TH  lua_th;  
    struct LUA_RH  lua_rh;  
    struct LUA_FLAG1 lua_flag1;  
    unsigned char  lua_message_type;  
    struct LUA_FLAG2 lua_flag2;   
    unsigned char  lua_resv56[7];  
    unsigned char  lua_encr_decr_option;  
};  
union LUA_SPECIFIC {  
    unsigned char lua_peek_data[12];  
};  

Membres

lua_verb
Paramètre fourni. Contient le code verbe, LUA_VERB_RUI pour les verbes RUI.

lua_verb_length
Paramètre fourni. Spécifie la longueur en octets de l’application d’unité logique (LUA) VCB. Il doit contenir la longueur de l’enregistrement de verbe émis.

lua_prim_rc
Code de retour principal défini par LUA à l’achèvement du verbe. Les codes de retour valides varient en fonction du verbe LUA émis.

lua_sec_rc
Code de retour secondaire défini par LUA à l’achèvement du verbe. Les codes de retour valides varient en fonction du verbe LUA émis.

lua_opcode
Paramètre fourni. Contient le code de commande LUA (code d’opération de verbe) pour que le verbe soit émis, LUA_OPCODE_RUI_BID.

lua_correlator
Paramètre fourni. Contient une valeur fournie par l’utilisateur qui lie le verbe à d’autres informations fournies par l’utilisateur. LUA n’utilise pas ou ne modifie pas ces informations. Ce paramètre est facultatif.

lua_luname
Paramètre fourni. Spécifie le nom ASCII de l’unité logique locale utilisée par la session Windows LUA.

RUI_BID nécessite uniquement ce paramètre si lua_sid est égal à zéro.

Ce paramètre est de huit octets longs, rembourrés à droite avec des espaces (0x20) si le nom est inférieur à huit caractères.

lua_extension_list_offset
Non utilisé par RUI dans Microsoft® Host Integration Server et doit être défini sur zéro.

lua_cobol_offset
Non utilisé par LUA dans Host Integration Server et doit être égal à zéro.

lua_sid
Paramètre fourni. Spécifie l’identificateur de session et est retourné par SLI_OPEN et RUI_INIT. D’autres verbes utilisent ce paramètre pour identifier la session utilisée pour la commande. Si d’autres verbes utilisent le paramètre lua_luname pour identifier les sessions, définissez le paramètre lua_sid sur zéro.

lua_max_length
Non utilisé par RUI_BID et doit être défini sur zéro.

lua_data_length
Paramètre retourné. Spécifie la longueur des données retournées dans lua_peek_data pour RUI_BID.

lua_data_ptr
Ce paramètre n’est pas utilisé et doit être défini sur zéro.

lua_post_handle
Paramètre fourni. Utilisé sous Microsoft Windows Server si la notification asynchrone doit être effectuée par les événements. Cette variable contient le handle de l’événement à signaler ou à un handle de fenêtre.

lua_th
Paramètre retourné. Contient l’en-tête de transmission SNA (TH) du message reçu. Différents sous-paramètres sont définis pour les fonctions d’écriture et retournées pour les fonctions de lecture et d’offre. Ses sous-paramètres sont les suivants :

lua_th.flags_fid

Format de type d’identification 2, quatre bits.

lua_th.flags_mpf

Champ de mappage segmenté, deux bits. Définit le type de segment de données. Les valeurs suivantes sont valides :

segment intermédiaire 0x00 segment0x04 Dernier segment0x08 premier segment0x0C uniquement

lua_th.flags_odai

Indicateur d’assigneur de champ d’adresse d’origine -champ de destination (OAF-DAF), un bit.

lua_th.flags_efi

Indicateur de flux accéléré, un bit.

lua_th.daf

Champ d’adresse de destination (DAF), un caractère non signé.

lua_th.oaf

Champ d’adresse d’origine (OAF), un caractère non signé.

lua_th.snf

Champ numéro de séquence, char non signé[2].

lua_rh
Paramètre retourné. Contient l’en-tête de demande/réponse SNA (RH) du message envoyé ou reçu. Elle est définie pour la fonction d’écriture et retournée par les fonctions de lecture et d’offre. Ses sous-paramètres sont les suivants :

lua_rh.rri

Indicateur de demande-réponse, un bit.

lua_rh.ruc

Catégorie ru, deux bits. Les valeurs suivantes sont valides :

LUA_RH_FMD (0x00) contrôle de flux de données FMLUA_RH_NC (0x20) Contrôle réseauLUA_RH_DFC (0x40) Contrôle de flux de donnéesLUA_RH_SC (0x60) Contrôle de session

lua_rh.fi

Indicateur de format, un bit.

lua_rh.sdi

Indicateurs de données de sens inclus, un peu.

lua_rh.bci

Indicateur de chaîne de début, un peu.

lua_rh.eci

Indicateur de chaîne de fin, un peu.

lua_rh.dr1i

Indicateur 1 réponse définitive, un peu.

lua_rh.dr2i

Indicateur 2 réponse définitive, un peu.

lua_rh.ri

Indicateur de réponse d’exception (pour une demande) ou indicateur de type de réponse (pour une réponse), un bit.

lua_rh.qri

Indicateur de réponse mis en file d’attente, un bit.

lua_rh.pi

Indicateur de pacing, un peu.

lua_rh.bbi

Indicateur de crochet de début, un bit.

lua_rh.ebi

Indicateur de crochet de fin, un bit.

lua_rh.idc

Changer l’indicateur de direction, un peu.

lua_rh.csi

Indicateur de sélection de code, un bit.

lua_rh.edi

Indicateur de données chiffré, un bit.

lua_rh.pdi

Indicateur de données rembourré, un peu.

lua_flag1
Paramètre fourni. Contient une structure de données contenant des indicateurs pour les messages fournis par l’application. Ses sous-paramètres sont les suivants :

lua_flag1.bid_enable

Indicateur d’activation de l’offre, un peu.

lua_flag1.close_abend

Fermez l’indicateur immédiat, un peu.

lua_flag1.nowait

Pas d’attente pour l’indicateur de données, un bit.

lua_flag1.sscp_exp

Flux accéléré SSCP, un bit.

lua_flag1.sscp_norm

Flux normal SSCP, un bit.

lua_flag1.lu_exp

Flux accéléré lu, un peu.

lua_flag1.lu_norm

Flux normal lu, un peu.

lua_message_type
Paramètre retourné. Spécifie le type de message SNA indiqué à RUI_BID. Les valeurs possibles sont les suivantes :

LUA_MESSAGE_TYPE_LU_DATA

LUA_MESSAGE_TYPE_SSCP_DATA

LUA_MESSAGE_TYPE_BID

LUA_MESSAGE_TYPE_BIND

LUA_MESSAGE_TYPE_BIS

LUA_MESSAGE_TYPE_CANCEL

LUA_MESSAGE_TYPE_CHASE

LUA_MESSAGE_TYPE_CLEAR

LUA_MESSAGE_TYPE_CRV

LUA_MESSAGE_TYPE_LUSTAT_LU

LUA_MESSAGE_TYPE_LUSTAT_SSCP

LUA_MESSAGE_TYPE_QC

LUA_MESSAGE_TYPE_QEC

LUA_MESSAGE_TYPE_RELQ

LUA_MESSAGE_TYPE_RQR

LUA_MESSAGE_TYPE_RTR

LUA_MESSAGE_TYPE_SBI

LUA_MESSAGE_TYPE_SHUTD

LUA_MESSAGE_TYPE_SIGNAL

LUA_MESSAGE_TYPE_SDT

LUA_MESSAGE_TYPE_STSN

LUA_MESSAGE_TYPE_UNBIND

L’interface de niveau de session (SLI) reçoit et répond aux requêtes BIND, CRV et STSN via les routines d’extension de l’interface LUA.

LU_DATA, LUSTAT_LU, LUSTAT_SSCP et SSCP_DATA ne sont pas des commandes SNA.

lua_flag2
Paramètre retourné. Contient des indicateurs pour les messages retournés par LUA. Ses sous-paramètres sont les suivants :

lua_flag2.bid_enable

Indique que RUI_BID a été correctement réactivée si la valeur est 1.

lua_flag2.async

Indique que le verbe de l’interface LUA s’est terminé de façon asynchrone s’il est défini sur 1.

lua_flag2.sscp_exp

Indique le flux accéléré SSCP s’il est défini sur 1.

lua_flag2.sscp_norm

Indique le flux normal SSCP s’il est défini sur 1.

lua_flag2.lu_exp

Indique le flux accéléré lu s’il est défini sur 1.

lua_flag2.lu_norm

Indique le flux normal lu s’il est défini sur 1.

lua_resv56
Réservé et doit être défini sur zéro.

lua_encr_decr_option
Réservé et doit être défini sur zéro.

lua_peek_data
Membre de l’union de LUA_SPECIFIC utilisé par les verbes RUI_BID et SLI_BID. Paramètre retourné. Contient jusqu’à 12 octets des données en attente de lecture.

Codes de retour

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

LUA_CANCELED
Code de retour principal ; le verbe n’a pas réussi, car il a été annulé par un autre verbe.

LUA_TERMINATED

Code de retour secondaire ; RUI_TERM a été émis pendant que ce verbe était en attente.

LUA_PARAMETER_CHECK
Code de retour principal ; le verbe n’a pas été exécuté en raison d’une erreur de paramètre.

LUA_BAD_SESSION_ID

Code de retour secondaire ; une valeur non valide pour lua_sid a été spécifiée dans le VCB.

LUA_BID_ALREADY_ENABLED

Code de retour secondaire ; RUI_BID a été rejetée parce qu’une RUI_BID précédente était déjà en suspens. Une seule RUI_BID peut être en attente à tout moment.

LUA_INVALID_POST_HANDLE

Code de retour secondaire ; pour un système d’exploitation Windows utilisant des événements comme méthode de publication asynchrone, windows LUA VCB ne contient pas de handle d’événements valide.

LUA_RESERVED_FIELD_NOT_ZERO

Code de retour secondaire ; Un champ réservé dans l’enregistrement de verbe, ou un paramètre non utilisé par ce verbe, a été défini sur une valeur différente de zéro.

LUA_VERB_LENGTH_INVALID

Code de retour secondaire ; un verbe LUA a été émis avec la valeur de lua_verb_length inattendue par LUA.

LUA_STATE_CHECK
Code de retour principal ; le verbe n’a pas exécuté, car il a été émis dans un état non valide.

LUA_NO_RUI_SESSION

Code de retour secondaire ; RUI_INIT n’a pas encore réussi pour le nom de lu spécifié sur ce verbe.

LUA_UNSUCCESSFUL
Code de retour principal ; l’enregistrement de verbe fourni était valide, mais le verbe n’a pas réussi.

LUA_INVALID_PROCESS

Code de retour secondaire ; le processus qui a émis ce verbe n’était pas le même processus que celui qui a émis RUI_INIT pour cette session. Seul le processus qui a démarré une session peut émettre des verbes sur cette session.

LUA_NEGATIVE_RSP
Code de retour principal ; LUA a détecté une erreur dans les données reçues de l’hôte. Au lieu de transmettre le message reçu à l’application sur RUI_READ, LUA ignore le message (et le reste de la chaîne s’il se trouve dans une chaîne) et envoie une réponse négative à l’hôte.

LUA informe l’application d’une RUI_READ ou d’une RUI_BID ultérieure qu’une réponse négative a été envoyée.

Le code de retour secondaire contient le code de sens envoyé à l’hôte sur la réponse négative. Pour plus d’informations sur l’interprétation des valeurs de code de sens qui peuvent être retournées, consultez Considérations relatives à SNA à l’aide de LUA.

Un code de retour secondaire zéro indique que, après une RUI_WRITE précédente d’une réponse négative à un message au milieu d’une chaîne, LUA a maintenant reçu et ignoré tous les messages de cette chaîne.

LUA_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 programme de transaction (TP) et le nœud d’unité physique (PU) 2.1 a été interrompue (erreur LAN).

  • Le SnaBase sur l’ordinateur TPS a rencontré un ABEND.

    LUA_SESSION_FAILURE
    Code de retour principal ; Un composant Host Integration Server requis s’est arrêté.

    LUA_LU_COMPONENT_DISCONNECTED

    Code de retour secondaire ; indique que la session LUA a échoué en raison d’un problème avec le service de liaison ou avec l’unité logique hôte.

    LUA_RUI_LOGIC_ERROR

    Code de retour secondaire ; une erreur interne a été détectée dans LUA. Cette erreur ne doit pas se produire pendant l’opération normale.

    LUA_INVALID_VERB
    Code de retour principal ; le code détaillé ou le code d’opération, ou les deux, n’est pas valide. Le verbe n’a pas exécuté.

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

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

    LUA_UNEXPECTED_DOS_ERROR
    Code de retour principal ; après avoir émis un appel de système d’exploitation, un code de retour inattendu du système d’exploitation a été reçu et est spécifié dans le code de retour secondaire.

Remarques

RUI_BID est utilisé par les applications qui nécessitent une notification indiquant qu’un message est en attente de lecture. Cela permet à l’application de déterminer comment elle gère le message avant d’émettre RUI_READ.

Lorsqu’un message est disponible, RUI_BID retourne avec les détails du flux de message sur lequel il a été reçu, le type de message, le TH et le RH du message, et jusqu’à 12 octets de données de message.

La principale différence entre RUI_BID et RUI_READ est que RUI_BID permet à l’application de vérifier les données sans les supprimer de la file d’attente de messages entrantes, afin qu’elles soient laissées et accessibles ultérieurement. RUI_READ supprime le message de la file d’attente. Par conséquent, lorsque l’application lit les données qu’elle doit également traiter.

Notez ce qui suit lors de l’utilisation de RUI_BID :

  • RUI_INIT doit se terminer correctement avant l’émission de ce verbe.

  • Une seule RUI_BID peut être en attente à tout moment.

  • Une fois RUI_BID terminée, elle peut être rééditée en définissant lua_flag1.bid_enable sur une RUI_READ ultérieure. Si le verbe est réédité de cette façon, l’application ne doit pas libérer ou modifier le stockage associé à l’enregistrement RUI_BID .

  • Si un message arrive de l’hôte lorsque RUI_READ et RUI_BID sont tous deux en attente, RUI_READ se termine et RUI_BID est laissé en cours.

    Chaque message qui arrive n’est offert qu’une seule fois. Après RUI_BID indique que les données attendent un flux de session particulier, l’application émet RUI_READ recevoir les données. Toute RUI_BID ultérieure ne signale pas les données arrivant sur ce flux de session tant que le message qui a été accepté n’a pas été accepté en émettant RUI_READ.

    En général, le paramètre lua_data_length retourné sur ce verbe indique uniquement la longueur des données dans lua_peek_data, et non la longueur totale des données sur le message d’attente (sauf lorsqu’une valeur inférieure à 12 est retournée). L’application doit s’assurer que la longueur des données sur RUI_READ qui accepte les données est suffisante pour contenir le message.

Voir aussi

RUI_INIT
RUI_READ
RUI_TERM
RUI_WRITE
SLI_OPEN