SLI_CLOSE
El verbo SLI_CLOSE finaliza una sesión abierta con SLI_OPEN. Se liberan los recursos LU-LU y LU-SSCP.
En la estructura siguiente se describe el miembro LUA_COMMON del bloque de control de verbos (VCB) usado por SLI_CLOSE.
Sintaxis
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;
};
Members
lua_verb
Parámetro proporcionado. Contiene el código de verbo, LUA_VERB_SLI para verbos de la interfaz de nivel de sesión (SLI).
lua_verb_length
Parámetro proporcionado. Especifica la longitud en bytes del VCB de la aplicación de unidad lógica (LUA). Debe contener la longitud del registro de verbo que se va a emitir.
lua_prim_rc
Código de retorno principal establecido por LUA al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo LUA emitido.
lua_sec_rc
Código de retorno secundario establecido por LUA al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo LUA emitido.
lua_opcode
Parámetro proporcionado. Contiene el código de comando LUA (código de operación de verbo) para el verbo que se va a emitir, LUA_OPCODE_SLI_CLOSE.
lua_correlator
Parámetro proporcionado. Contiene un valor proporcionado por el usuario que vincula el verbo con otra información proporcionada por el usuario. LUA no usa ni cambia esta información. Este parámetro es opcional.
lua_luname
Parámetro proporcionado. Especifica el nombre ASCII de la LU local usada por la sesión de LUA de Windows.
SLI_CLOSE solo requiere este parámetro si lua_sid es cero.
Este parámetro tiene ocho bytes de longitud, rellenado a la derecha con espacios (0x20) si el nombre tiene más de ocho caracteres.
lua_extension_list_offset
No se usa en SLI_CLOSE y debe establecerse en cero.
lua_cobol_offset
LuA no se usa en Microsoft® Host Integration Server y debe ser cero.
lua_sid
Parámetro proporcionado. Especifica el identificador de sesión y lo devuelve SLI_OPEN y RUI_INIT. Otros verbos usan este parámetro para identificar la sesión usada para el comando . Si otros verbos usan el parámetro lua_luname para identificar sesiones, establezca el parámetro lua_sid en cero.
lua_max_length
No se usa en SLI_CLOSE y debe establecerse en cero.
lua_data_length
No se usa en SLI_CLOSE y debe establecerse en cero.
lua_data_ptr
No se usa en SLI_CLOSE y debe establecerse en cero.
lua_post_handle
Parámetro proporcionado. Se usa en Microsoft Windows Server si los eventos van a realizar notificaciones asincrónicas. Esta variable contiene el identificador del evento que se va a indicar o un identificador de ventana.
lua_th
No se usa en SLI_CLOSE y debe establecerse en cero.
lua_rh
No se usa en SLI_CLOSE y debe establecerse en cero.
lua_flag1
Parámetro proporcionado. Contiene una estructura de datos que contiene marcas para los mensajes proporcionados por la aplicación. Sus subparámetros son los siguientes:
lua_flag1.bid_enable
Indicador de habilitación de puja, un bit.
lua_flag1.close_abend
Cierre el indicador inmediato, un bit. Parámetro proporcionado usado por SLI_CLOSE para especificar si la sesión se cerrará inmediatamente (ON) o cerrarse normalmente (OFF). Para verbos distintos de SLI_CLOSE, esta marca debe estar desactivada.
lua_flag1.nowait
No espere a la marca de datos, un bit.
lua_flag1.sscp_exp
Flujo acelerado del punto de control de servicios del sistema (SSCP), un bit.
lua_flag1.sscp_norm
Flujo normal de SSCP, un bit.
lua_flag1.lu_exp
Flujo acelerado de LU, un bit.
lua_flag1.lu_norm
Flujo normal de LU, un bit.
lua_message_type
No se usa en SLI_CLOSE y debe establecerse en cero.
lua_flag2
Parámetro devuelto. Contiene marcas para los mensajes devueltos por LUA.
lua_flag2.async
Indica que el verbo de interfaz LUA se completó de forma asincrónica si se establece en 1.
lua_resv56
Reservado y debe establecerse en cero.
lua_encr_decr_option
No se usa en SLI_CLOSE y debe establecerse en cero.
Códigos de retorno
LUA_OK
Código de retorno principal; el verbo se ha ejecutado correctamente.
LUA_SEC_OK
Código de retorno secundario; no existe información adicional para LUA_OK.
LUA_PARAMETER_CHECK
Código de retorno principal; el verbo no se ha ejecutado debido a un error en un parámetro.
LUA_INVALID_LUNAME
Código de retorno secundario; se especificó un lua_luname no válido.
LUA_BAD_SESSION_ID
Código de retorno secundario; se especificó un valor no válido para lua_sid en el VCB.
LUA_RESERVED_FIELD_NOT_ZERO
Código de retorno secundario; Un parámetro reservado para el verbo que acaba de emitir no se establece en cero.
LUA_INVALID_POST_HANDLE
Código de retorno secundario; para un sistema operativo Microsoft Windows que usa eventos como método de contabilización asincrónica, el VCB de LUA de Windows no contiene un identificador de eventos válido.
LUA_VERB_LENGTH_INVALID
Código de retorno secundario; Un verbo LUA se emitió con un valor para lua_verb_length inesperado por LUA.
LUA_STATE_CHECK
Código de retorno principal; el verbo no se ejecutó porque se emitió en un estado no válido.
LUA_NO_SLI_SESSION
Código de retorno secundario; una sesión no estaba abierta o estaba inactiva debido a un error de SLI_CLOSE o sesión cuando se emitió un comando.
LUA_CLOSE_PENDING
Código de retorno secundario; se ha producido una de las siguientes acciones:
Un CLOSE_ABEND todavía estaba pendiente cuando se emitió otro CLOSE_ABEND. Puede emitir un CLOSE_ABEND si un CLOSE_NORMAL está pendiente.
Un CLOSE_ABEND o un CLOSE_NORMAL aún estaba pendiente cuando se emitió un CLOSE_NORMAL.
LUA_SESSION_FAILURE
Código de retorno principal; una condición de error, especificada en el código de retorno secundario, provocó un error en la sesión.LUA_NOT_ACTIVE
Código de retorno secundario; LUA no estaba activo en Microsoft Host Integration Server cuando se emitió un verbo LUA.
LUA_UNEXPECTED_SNA_SEQUENCE
Código de retorno secundario; Se recibieron datos o comandos inesperados del host mientras SLI_OPEN estaba procesando.
LUA_NEGATIVE_RSP_CHASE
Código de retorno secundario; La interfaz LUA recibió una respuesta negativa a un comando SNA CHASE desde el host mientras se estaba procesando SLI_CLOSE . SLI_CLOSE procesamiento continuado para detener la sesión.
LUA_NEGATIVE_RSP_SHUTC
Código de retorno secundario; La SLI recibió una respuesta negativa a un comando SHUTC de SNA desde el host mientras SLI_CLOSE todavía se estaba procesando. SLI_CLOSE procesamiento continuado para detener la sesión.
LUA_NEGATIVE_RSP_SHUTD
Código de retorno secundario; La interfaz LUA recibió una respuesta negativa a un comando RSHUTD de SNA desde el host mientras SLI_CLOSE todavía se estaba procesando. SLI_CLOSE procesamiento continuado para detener la sesión.
LUA_RECEIVED_UNBIND
Código de retorno secundario; la unidad lógica principal (PLU) envió un comando UNBIND de SNA a la interfaz LUA cuando una sesión estaba activa. Como resultado, la sesión se detuvo.
LUA_NO_RUI_SESSION
Código de retorno secundario; no se ha inicializado ninguna sesión para el verbo LUA emitido o algún verbo distinto de SLI_OPEN se emitió antes de que se inicializara la sesión.
LUA_LU_COMPONENT_DISCONNECTED
Código de retorno secundario; Un componente de LU no está disponible porque no está conectado correctamente. Asegúrese de que la alimentación está activada.
LUA_IN_PROGRESS
Código de retorno principal; Se recibió un comando asincrónico, pero no se completó.LUA_COMM_SUBSYSTEM_ABENDED
Código de retorno principal; indica una de las condiciones siguientes:El nodo utilizado por esta conversación encontró una anulación.
La conexión entre el programa de transacción (TP) y el nodo 2.1 de la unidad física (PU) se ha interrumpido (un error laN).
SnaBase en el equipo TPs encontró un ABEND.
LUA_COMM_SUBSYSTEM_NOT_LOADED
Código de retorno principal; no se pudo cargar o finalizar un componente necesario durante el procesamiento del verbo. Por tanto, no se pudo establecer la comunicación. Consulte al administrador del sistema para aplicar una acción correctiva.LUA_INVALID_VERB_SEGMENT
Código de retorno principal; el bloque de control de verbo (VCB) se extendía más allá del final del segmento de datos.LUA_UNEXPECTED_DOS_ERROR
Código de retorno principal; después de emitir una llamada del sistema operativo, se recibió un código de retorno inesperado del sistema operativo y se especifica en el código de retorno secundario.LUA_STACK_TOO_SMALL
Código de retorno principal; el tamaño de la pila de la aplicación es demasiado pequeño para ejecutar el verbo. Aumente el tamaño de pila de la aplicación.LUA_INVALID_VERB
Código de retorno principal; El código de verbo o el código de operación, o ambos, no son válidos. El verbo no se ejecutó.
Comentarios
Hay dos tipos de SLI_CLOSE: normal y ABEND. Para un cierre normal, lua_flag1.close_abend se establece en cero. La secuencia de un cierre normal se puede iniciar como principal (iniciado por el host) o secundaria (solicitada por una aplicación LUA de Windows). Durante un cierre normal principal, la interfaz LUA de Windows:
Lee el comando SHUTD y envía el estado SESSION_END_REQUESTED a la aplicación.
Escribe el comando CHASE (si es necesario).
Lee y procesa la respuesta del comando CHASE (si es necesario).
Escribe el comando shutdown complete (SHUTC).
Lee y procesa la respuesta del comando SHUTC.
Lee y procesa el comando CLEAR (si es necesario).
Escribe la respuesta del comando CLEAR (si es necesario).
Lee y procesa el comando UNBIND.
Escribe la respuesta del comando UNBIND.
Detiene la sesión.
Durante un cierre normal secundario, la interfaz LUA de Windows:
Escribe el comando RSHUTD.
Lee y procesa la respuesta del comando RSHUTD.
Lee y procesa el comando CLEAR (si es necesario).
Escribe la respuesta del comando CLEAR (si es necesario).
Lee y procesa el comando UNBIND.
Escribe la respuesta del comando UNBIND.
Detiene la sesión.
Para un cierre de ABEND, lua_flag1.close_abend se establece en 1, lo que dirige la interfaz LUA de Windows para cerrar la sesión inmediatamente. Después de SLI_CLOSE inicia el procesamiento, se finaliza la conexión LU-LU y se informa al SSCP de que la LU no es capaz de mantener una sesión.