SLI_CLOSE
Le verbe SLI_CLOSE met fin à une session ouverte avec SLI_OPEN. Les ressources LU-LU et LU-SSCP sont publiées.
La structure suivante décrit le LUA_COMMON membre du bloc de contrôle verbe (VCB) utilisé par SLI_CLOSE.
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;
};
Membres
lua_verb
Paramètre fourni. Contient le code verbe, LUA_VERB_SLI pour les verbes SLI (Session Level Interface).
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_SLI_CLOSE.
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.
SLI_CLOSE 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 SLI_CLOSE et doit être défini sur zéro.
lua_cobol_offset
Non utilisé par LUA dans Microsoft® 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 SLI_CLOSE et doit être défini sur zéro.
lua_data_length
Non utilisé par SLI_CLOSE et doit être défini sur zéro.
lua_data_ptr
Non utilisé par SLI_CLOSE 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
Non utilisé par SLI_CLOSE et doit être défini sur zéro.
lua_rh
Non utilisé par SLI_CLOSE et doit être défini sur zéro.
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. Paramètre fourni utilisé par SLI_CLOSE pour spécifier si la session doit être fermée immédiatement (ON) ou normalement (OFF). Pour les verbes autres que SLI_CLOSE, cet indicateur doit être désactivé.
lua_flag1.nowait
Pas d’attente pour l’indicateur de données, un bit.
lua_flag1.sscp_exp
Flux accéléré du point de contrôle des services système (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 de l’unité logique, un bit.
lua_message_type
Non utilisé par SLI_CLOSE et doit être défini sur zéro.
lua_flag2
Paramètre retourné. Contient des indicateurs pour les messages retournés par LUA.
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_resv56
Réservé et doivent être définis sur zéro.
lua_encr_decr_option
Non utilisé par SLI_CLOSE et doit être défini sur zéro.
Codes de retour
LUA_OK
Code de retour principal ; indique que le verbe s’est exécuté correctement.
LUA_SEC_OK
Code de retour secondaire ; Aucune information supplémentaire n’existe pour LUA_OK.
LUA_PARAMETER_CHECK
Code de retour principal ; le verbe n’a pas été exécuté en raison d’une erreur de paramètre.
LUA_INVALID_LUNAME
Code de retour secondaire ; un lua_luname non valide a été spécifié.
LUA_BAD_SESSION_ID
Code de retour secondaire ; une valeur non valide pour lua_sid a été spécifiée dans le VCB.
LUA_RESERVED_FIELD_NOT_ZERO
Code de retour secondaire ; un paramètre réservé pour le verbe qui vient d’être émis n’est pas défini sur zéro.
LUA_INVALID_POST_HANDLE
Code de retour secondaire ; pour un système d’exploitation Microsoft 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_VERB_LENGTH_INVALID
Code de retour secondaire ; un verbe LUA a été émis avec une valeur pour lua_verb_length inattendu 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_SLI_SESSION
Code de retour secondaire ; une session n’était pas ouverte ou était arrêtée en raison d’un SLI_CLOSE ou d’un échec de session lors de l’émission d’une commande.
LUA_CLOSE_PENDING
Code de retour secondaire ; l’un des événements suivants s’est produit :
Une CLOSE_ABEND était toujours en attente lorsqu’une autre CLOSE_ABEND a été émise. Vous pouvez émettre un CLOSE_ABEND si un CLOSE_NORMAL est en attente.
Un CLOSE_ABEND ou un CLOSE_NORMAL était toujours en attente lorsqu’un CLOSE_NORMAL a été émis.
LUA_SESSION_FAILURE
Code de retour principal ; une condition d’erreur, spécifiée dans le code de retour secondaire, a provoqué l’échec de la session.LUA_NOT_ACTIVE
Code de retour secondaire ; LUA n’était pas actif dans Microsoft Host Integration Server lorsqu’un verbe LUA a été émis.
LUA_UNEXPECTED_SNA_SEQUENCE
Code de retour secondaire ; des données ou des commandes inattendues ont été reçues de l’hôte pendant le traitement de SLI_OPEN .
LUA_NEGATIVE_RSP_CHASE
Code de retour secondaire ; une réponse négative à une commande CHASE SNA de l’hôte a été reçue par l’interface LUA alors que SLI_CLOSE était en cours de traitement. SLI_CLOSE poursuivi le traitement pour arrêter la session.
LUA_NEGATIVE_RSP_SHUTC
Code de retour secondaire ; une réponse négative à une commande SNA SHUTC de l’hôte a été reçue par le SLI alors que SLI_CLOSE était encore en cours de traitement. SLI_CLOSE poursuivi le traitement pour arrêter la session.
LUA_NEGATIVE_RSP_SHUTD
Code de retour secondaire ; une réponse négative à une commande SNA RSHUTD de l’hôte a été reçue par l’interface LUA alors que SLI_CLOSE était encore en cours de traitement. SLI_CLOSE poursuivi le traitement pour arrêter la session.
LUA_RECEIVED_UNBIND
Code de retour secondaire ; l’unité logique primaire (PLU) a envoyé une commande SNA UNBIND à l’interface LUA lorsqu’une session était active. Par conséquent, la session a été arrêtée.
LUA_NO_RUI_SESSION
Code de retour secondaire ; aucune session n’a été initialisée pour le verbe LUA émis, ou un verbe autre que SLI_OPEN a été émis avant l’initialisation de la session.
LUA_LU_COMPONENT_DISCONNECTED
Code de retour secondaire ; un composant LU n’est pas disponible, car il n’est pas correctement connecté. Assurez-vous que l’alimentation est activée.
LUA_IN_PROGRESS
Code de retour principal ; une commande asynchrone a été reçue, mais n’est pas terminée.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é rompue (erreur LAN).
Le SnaBase sur l’ordinateur des fournisseurs de services a rencontré un ABEND.
LUA_COMM_SUBSYSTEM_NOT_LOADED
Code de retour principal ; indique qu’il n’a pas été possible de charger un composant requis ou d’y mettre fin 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_INVALID_VERB_SEGMENT
Code de retour principal ; indique que le bloc de contrôle de verbe s’étend au-delà de la fin du segment de données.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.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_INVALID_VERB
Code de retour principal ; le code du verbe ou le code d’opération, ou les deux, n’est pas valide. Le verbe n’a pas été exécuté.
Remarques
Il existe deux types de SLI_CLOSE : normal et ABEND. Pour une fermeture normale, lua_flag1.close_abend est défini sur zéro. La séquence d’une fermeture normale peut être lancée en tant que principale (initiée par l’hôte) ou secondaire (demandée par une application Windows LUA). Lors d’une fermeture normale principale, l’interface Windows LUA :
Lit la commande SHUTD et publie le SESSION_END_REQUESTED status dans l’application.
Écrit la commande CHASE (si nécessaire).
Lit et traite la réponse de commande CHASE (si nécessaire).
Écrit la commande shutdown complete (SHUTC).
Lit et traite la réponse de commande SHUTC.
Lit et traite la commande CLEAR (si nécessaire).
Écrit la réponse de commande CLEAR (si nécessaire).
Lit et traite la commande UNBIND.
Écrit la réponse de commande UNBIND.
Arrête la session.
Lors d’une fermeture normale secondaire, l’interface Windows LUA :
Écrit la commande RSHUTD.
Lit et traite la réponse de commande RSHUTD.
Lit et traite la commande CLEAR (si nécessaire).
Écrit la réponse de commande CLEAR (si nécessaire).
Lit et traite la commande UNBIND.
Écrit la réponse de commande UNBIND.
Arrête la session.
Pour une fermeture ABEND, lua_flag1.close_abend a la valeur 1, ce qui permet à l’interface Windows LUA de fermer immédiatement la session. Une fois que SLI_CLOSE a commencé le traitement, la connexion LU-LU est arrêtée et le SSCP est informé que l’unité lu n’est pas en mesure de maintenir une session.