RUI_BID
El RUI_BID verbo notifica a la aplicación interfaz de unidad de solicitud (RUI) que un mensaje está esperando a leerse mediante RUI_READ.
En la estructura siguiente se describe el miembro LUA_COMMON del bloque de control de verbos (VCB) usado por RUI_BID:
La segunda unión de sintaxis describe el miembro LUA_SPECIFIC del bloque de control de verbo (VCB) usado por RUI_BID. Otros miembros de la unión se omiten para mayor claridad:
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;
};
union LUA_SPECIFIC {
unsigned char lua_peek_data[12];
};
Members
lua_verb
Parámetro proporcionado. Contiene el código de verbo, LUA_VERB_RUI para verbos RUI.
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 según el 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 según el 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_RUI_BID.
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.
RUI_BID 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 menos de ocho caracteres.
lua_extension_list_offset
No se usa por RUI en Microsoft® Host Integration Server y debe establecerse en cero.
lua_cobol_offset
LuA no se usa en Host Integration Server y debe ser cero.
lua_sid
Parámetro proporcionado. Especifica el identificador de sesión y lo devuelven 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 RUI_BID y debe establecerse en cero.
lua_data_length
Parámetro devuelto. Especifica la longitud de los datos devueltos en lua_peek_data para RUI_BID.
lua_data_ptr
Este parámetro no se usa y debe establecerse en cero.
lua_post_handle
Parámetro proporcionado. Se usa en Microsoft Windows Server si los eventos deben realizar notificaciones asincrónicas. Esta variable contiene el identificador del evento que se va a indicar o un identificador de ventana.
lua_th
Parámetro devuelto. Contiene el encabezado de transmisión SNA (TH) del mensaje recibido. Se establecen varios subparámetros para las funciones de escritura y se devuelven para las funciones de lectura y puja. Sus subparámetros son los siguientes:
lua_th.flags_fid
Formato tipo de identificación 2, cuatro bits.
lua_th.flags_mpf
Campo de asignación de segmentación, dos bits. Define el tipo de segmento de datos. Valores válidos son:
segmento 0x00 medio0x04 último segmento0x08 primer segmento0x0C solo segmento
lua_th.flags_odai
Indicador del asignador de campo de dirección de origen:campo de destino (OAF–DAF), un bit.
lua_th.flags_efi
Indicador de flujo acelerado, un bit.
lua_th.daf
Campo de dirección de destino (DAF), un carácter sin signo.
lua_th.oaf
Campo de dirección de origen (OAF), un carácter sin signo.
lua_th.snf
Campo número de secuencia, un carácter sin signo[2].
lua_rh
Parámetro devuelto. Contiene el encabezado de solicitud/respuesta de SNA (RH) del mensaje enviado o recibido. Se establece para la función de escritura y la devuelven las funciones de lectura y puja. Sus subparámetros son los siguientes:
lua_rh.rri
Indicador de solicitud-respuesta, un bit.
lua_rh.ruc
Categoría de RU, dos bits. Valores válidos son:
LUA_RH_FMD (0x00) control de flujo de datos fmLUA_RH_NC (0x20) Control de red LUA_RH_DFC (0x40) Control de flujo de datosLUA_RH_SC (0x60) Control de sesión
lua_rh.fi
Indicador de formato, un bit.
lua_rh.sdi
Los datos de detección incluyen un indicador, un bit.
lua_rh.bci
Indicador de cadena inicial, un bit.
lua_rh.eci
Indicador de cadena final, un bit.
lua_rh.dr1i
Indicador de respuesta definitiva 1, un bit.
lua_rh.dr2i
Indicador de respuesta 2 definitiva, un bit.
lua_rh.ri
Indicador de respuesta de excepción (para una solicitud) o indicador de tipo de respuesta (para una respuesta), un bit.
lua_rh.qri
Indicador de respuesta en cola, un bit.
lua_rh.pi
Indicador de velocidad, un poco.
lua_rh.bbi
Indicador de corchete inicial, un bit.
lua_rh.ebi
Indicador de corchete final, un bit.
lua_rh.cdi
Indicador de dirección de cambio, un bit.
lua_rh.csi
Indicador de selección de código, un bit.
lua_rh.edi
Indicador de datos cifrado, un bit.
lua_rh.pdi
Indicador de datos rellenado, un bit.
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.
lua_flag1.nowait
No espere a la marca de datos, un bit.
lua_flag1.sscp_exp
Flujo acelerado de 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
Parámetro devuelto. Especifica el tipo de mensaje de SNA indicado para RUI_BID. Los valores posibles son:
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
La interfaz de nivel de sesión (SLI) recibe y responde a las solicitudes BIND, CRV y STSN a través de las rutinas de extensión de interfaz LUA.
LU_DATA, LUSTAT_LU, LUSTAT_SSCP y SSCP_DATA no son comandos SNA.
lua_flag2
Parámetro devuelto. Contiene marcas para los mensajes devueltos por LUA. Sus subparámetros son los siguientes:
lua_flag2.bid_enable
Indica que RUI_BID se ha vuelto a habilitar correctamente si está establecido en 1.
lua_flag2.async
Indica que el verbo de interfaz LUA se completó de forma asincrónica si se establece en 1.
lua_flag2.sscp_exp
Indica el flujo acelerado de SSCP si se establece en 1.
lua_flag2.sscp_norm
Indica el flujo normal de SSCP si se establece en 1.
lua_flag2.lu_exp
Indica el flujo acelerado de LU si se establece en 1.
lua_flag2.lu_norm
Indica el flujo normal de LU si se establece en 1.
lua_resv56
Reservado y debe establecerse en cero.
lua_encr_decr_option
Reservado y debe establecerse en cero.
lua_peek_data
Miembro de unión de LUA_SPECIFIC utilizado por el RUI_BID y SLI_BIDverbos. Parámetro devuelto. Contiene hasta 12 bytes de los datos que esperan leerse.
Códigos de retorno
LUA_OK
Código de retorno principal; el verbo se ha ejecutado correctamente.
LUA_CANCELED
Código de retorno principal; el verbo no se completó correctamente porque otro verbo lo canceló.
LUA_TERMINATED
Código de retorno secundario; RUI_TERM se emitió mientras este verbo estaba pendiente.
LUA_PARAMETER_CHECK
Código de retorno principal; el verbo no se ha ejecutado debido a un error en un parámetro.
LUA_BAD_SESSION_ID
Código de retorno secundario; se especificó un valor no válido para lua_sid en el VCB.
LUA_BID_ALREADY_ENABLED
Código de retorno secundario; RUI_BID se rechazó porque ya había un RUI_BID anterior pendiente. Solo una RUI_BID puede ser pendiente en cualquier momento.
LUA_INVALID_POST_HANDLE
Código de retorno secundario; para un sistema operativo 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_RESERVED_FIELD_NOT_ZERO
Código de retorno secundario; un campo reservado en el registro de verbos, o un parámetro no utilizado por este verbo, se estableció en un valor distinto de cero.
LUA_VERB_LENGTH_INVALID
Código de retorno secundario; Un verbo LUA se emitió con el valor de 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_RUI_SESSION
Código de retorno secundario; RUI_INIT aún no se ha completado correctamente para el nombre de LU especificado en este verbo.
LUA_UNSUCCESSFUL
Código de retorno principal; el registro de verbo proporcionado era válido, pero el verbo no se completó correctamente.
LUA_INVALID_PROCESS
Código de retorno secundario; el proceso que emitió este verbo no era el mismo proceso que emitió RUI_INIT para esta sesión. Solo el proceso que inició una sesión puede emitir verbos en esa sesión.
LUA_NEGATIVE_RSP
Código de retorno principal; LUA detectó un error en los datos recibidos del host. En lugar de pasar el mensaje recibido a la aplicación en RUI_READ, LUA descarta el mensaje (y el resto de la cadena si está en una cadena) y envía una respuesta negativa al host.
LUA informa a la aplicación en un RUI_READ posterior o RUI_BID que se envió una respuesta negativa.
El código de retorno secundario contiene el código de sentido enviado al host en la respuesta negativa. Para obtener información sobre cómo interpretar los valores de código de sentido que se pueden devolver, consulte Consideraciones de SNA con LUA.
Un código de retorno secundario cero indica que, después de un RUI_WRITE anterior de una respuesta negativa a un mensaje en medio de una cadena, LUA ha recibido y descartado ahora todos los mensajes de esta cadena.
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_SESSION_FAILURE
Código de retorno principal; Se ha finalizado un componente de Host Integration Server necesario.LUA_LU_COMPONENT_DISCONNECTED
Código de retorno secundario; indica que se ha producido un error en la sesión de LUA debido a un problema con el servicio de vínculo o con la LU del host.
LUA_RUI_LOGIC_ERROR
Código de retorno secundario; se detectó un error interno en LUA. Este error no debe producirse durante el funcionamiento normal.
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ó.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_COMM_SUBSYSTEM_NOT_LOADED
Código de retorno principal; no se pudo cargar un componente necesario o se ha terminado mientras se procesa el verbo. Por tanto, no se pudo establecer la comunicación. Consulte al administrador del sistema para aplicar una acción correctiva.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.
Comentarios
RUI_BID lo usan las aplicaciones que requieren notificación de que un mensaje está esperando a leerse. Esto permite a la aplicación determinar cómo controlará el mensaje antes de emitir RUI_READ.
Cuando hay un mensaje disponible, RUI_BID devuelve con detalles del flujo de mensajes en el que se recibió, el tipo de mensaje, el TH y RH del mensaje y hasta 12 bytes de datos del mensaje.
La principal diferencia entre RUI_BID y RUI_READ es que RUI_BID permite a la aplicación comprobar los datos sin quitarlos de la cola de mensajes entrantes, por lo que se puede dejar y acceder más adelante. RUI_READ quita el mensaje de la cola, por lo que cuando la aplicación lee los datos, también debe procesarlo.
Tenga en cuenta lo siguiente al usar RUI_BID:
RUI_INIT debe completarse correctamente antes de que se emita este verbo.
Solo una RUI_BID puede ser pendiente en cualquier momento.
Una vez que RUI_BID se haya completado correctamente, se puede volver a emitir estableciendo lua_flag1.bid_enable en un RUI_READ posterior. Si el verbo se vuelve a emitir de esta manera, la aplicación no debe liberar ni modificar el almacenamiento asociado al registro de RUI_BID .
Si llega un mensaje desde el host cuando RUI_READ y RUI_BID están pendientes, RUI_READ finaliza y RUI_BID queda en curso.
Cada mensaje que llega es pujado solo una vez. Después de RUI_BID indica que los datos están esperando un flujo de sesión determinado, la aplicación emite RUI_READ recibir los datos. Cualquier RUI_BID posterior no notifica los datos que llegan a ese flujo de sesión hasta que se haya aceptado el mensaje que se haya aceptado mediante la emisión de RUI_READ.
En general, el parámetro lua_data_length devuelto en este verbo indica solo la longitud de los datos en lua_peek_data, no la longitud total de los datos en el mensaje en espera (excepto cuando se devuelve un valor inferior a 12). La aplicación debe asegurarse de que la longitud de los datos de RUI_READ que acepte los datos sea suficiente para contener el mensaje.