RUI_BID
Le verbe RUI_BID avertit l’application RUI (Request Unit Interface) qu’un message attend d’être lu à 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 de verbe (VCB) utilisé par RUI_BID. Les autres membres du syndicat sont omis pour des motifs 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 à la fin 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 à la fin 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 le verbe à émettre, 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 la lu locale utilisée par la session Windows LUA.
RUI_BID requiert ce paramètre uniquement si lua_sid est égal à zéro.
Ce paramètre est de huit octets, rempli à 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 des é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és pour les fonctions de lecture et d’enchère. Ses sous-paramètres sont les suivants :
lua_th.flags_fid
Format d’identification type 2, quatre bits.
lua_th.flags_mpf
Champ de mappage de segmentage, deux bits. Définit le type de segment de données. Les valeurs suivantes sont valides :
0x00 Segment du milieu0x04 Dernier segment0x08 Premier segment0x0C segment uniquement
lua_th.flags_odai
Indicateur de l’assigneur champ d’adresse d’origine-champ d’adresse 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), char non signé.
lua_th.oaf
Champ d’adresse d’origine (OAF), char 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 requête/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’enchère. Ses sous-paramètres sont les suivants :
lua_rh.rri
Indicateur requête-réponse, un bit.
lua_rh.ruc
Catégorie de RU, deux bits. Les valeurs suivantes sont valides :
LUA_RH_FMD (0x00) segment de données FMLUA_RH_NC (0x20) Contrôle réseauLUA_RH_DFC (0x40) Contrôle de fluxde données LUA_RH_SC (0x60) Contrôle de session
lua_rh.fi
Indicateur de format, un bit.
lua_rh.sdi
Détecter l’indicateur des données incluses, un bit.
lua_rh.bci
Indicateur de chaîne de début, un bit.
lua_rh.eci
Indicateur de chaîne de fin, un bit.
lua_rh.dr1i
Réponse définie 1 indicateur, un bit.
lua_rh.dr2i
Indicateur de réponse défini 2, un bit.
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 rythme, un bit.
lua_rh.bbi
Commencez l’indicateur de crochets, un bit.
lua_rh.ebi
Indicateur de crochet de fin, un bit.
lua_rh.cdi
Changer l’indicateur de direction, un bit.
lua_rh.csi
Indicateur de sélection de code, un bit.
lua_rh.edi
Indicateur de données enchiffré, un bit.
lua_rh.pdi
Indicateur de données rembourrées, un bit.
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’enchère, un bit.
lua_flag1.close_abend
Fermez l’indicateur immédiat, un bit.
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 bit.
lua_flag1.lu_norm
Flux normal lu, un bit.
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 session (SLI) reçoit et répond aux requêtes BIND, CRV et STSN via les routines d’extension d’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é s’il est défini sur 1.
lua_flag2.async
Indique que le verbe d’interface LUA s’est terminé de manière 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 si 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 d’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 d’être lues.
Codes de retour
LUA_OK
Code de retour principal ; indique que le verbe s’est exécuté correctement.
LUA_CANCELED
Code de retour principal ; le verbe ne s’est pas terminé correctement, 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 à la fois.
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, le VCB Windows LUA ne contient pas de handle d’événement 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 été exécuté, car il a été émis dans un état non valide.
LUA_NO_RUI_SESSION
Code de retour secondaire ; RUI_INIT n’est pas encore terminé 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 ne s’est pas terminé correctement.
LUA_INVALID_PROCESS
Code de retour secondaire ; le processus qui a émis ce verbe n’était pas le même 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 sense 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, suite à 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 situations suivantes :
Le nœud utilisé par cette conversation a rencontré un abandon (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 terminé.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 la lu de l’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 le fonctionnement normal.
LUA_INVALID_VERB
Code de retour principal ; le code verbe ou le code d’opération, ou les deux, n’est pas valide. Le verbe n’a pas été exécuté.LUA_STACK_TOO_SMALL
Code de retour principal ; indique que la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de 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 terminé 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.LUA_UNEXPECTED_DOS_ERROR
Code de retour principal ; après l’émission d’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 attend d’être lu. Cela permet à l’application de déterminer comment elle va gérer 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, les valeurs TH et RH du message et jusqu’à 12 octets de données de message.
La main différence entre RUI_BID et RUI_READ est que RUI_BID permet à l’application d’case activée les données sans les supprimer de la file d’attente des messages entrants, afin qu’elles puissent être 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, elle doit également les traiter.
Notez les points suivants 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 à la fois.
Une fois la RUI_BID terminée, vous pouvez la réémettre en définissant lua_flag1.bid_enable sur une RUI_READ suivante. 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 alors que 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 enchérir qu’une seule fois. Une fois que RUI_BID indique que les données sont en attente sur un flux de session particulier, l’application 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é soumissionné n’a pas été accepté par l’émission de 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 en 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.