TEST_RTS_AND_POST
El verbo TEST_RTS_AND_POST permite a una aplicación, normalmente un emulador de 5250, solicitar una notificación asincrónica cuando un programa de transacciones de asociado (TP) solicita la dirección de envío.
En la estructura siguiente se describe el bloque de control de verbos (VCB) usado por el verbo TEST_RTS_AND_POST .
Sintaxis
struct test_rts {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char reserv3;
unsigned long handle;
};
Miembros
opcode
Parámetro proporcionado. Especifica el código de operación de verbo, AP_B_TEST_RTS_AND_POST.
opext
Parámetro proporcionado. Especifica la extensión de operación de verbo, AP_BASIC_CONVERSATION.
reserv2
Campo reservado.
primary_rc
Parámetro devuelto. Especifica el código de retorno principal que establece APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC que se emita. Consulte la sección de códigos de retorno para obtener los códigos de error válidos para este verbo.
secondary_rc
Parámetro devuelto. Especifica el código de retorno secundario que establece APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC que se emita. Consulte la sección de códigos de retorno para obtener los códigos de error válidos para este verbo.
tp_id
Parámetro proporcionado. Identifica el TP local. El valor de este parámetro lo devolvió TP_STARTED en el TP invocado o por RECEIVE_ALLOCATE en el TP invocado.
conv_id
Parámetro proporcionado. Proporciona el identificador de conversación. El valor de este parámetro lo devolvió ALLOCATE en el TP invocado o por RECEIVE_ALLOCATE en el TP invocado.
reserv3
Campo reservado.
handle
Parámetro proporcionado. En Microsoft Windows, este campo proporciona el identificador de eventos que se va a establecer.
Códigos de retorno del verbo inicial
AP_OK
Código de retorno principal; el verbo se ha ejecutado correctamente. Tenga en cuenta especialmente que un código de retorno de AP_OK del verbo inicial no indica que REQUEST_TO_SEND verbo recibido del TP del asociado. Simplemente indica que la instalación para recibir notificaciones asincrónicas se ha registrado.
AP_UNSUCCESSFUL
Código de retorno principal; no se ha recibido la notificación de solicitud a envío.
AP_PARAMETER_CHECK
Código de retorno principal; el verbo no se ha ejecutado debido a un error en un parámetro.
AP_BAD_CONV_ID
Código de retorno secundario; el valor de conv_id no coincide con un identificador de conversación asignado por APPC.
AP_BAD_TP_ID
Código de retorno secundario; el valor de tp_id no coincide con un identificador de TP asignado por APPC.
AP_INVALID_SEMAPHORE_HANDLE
El código de retorno secundario, el valor del identificador no era válido.
AP_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 TP y el nodo PU 2.1 se interrumpió (un error de LAN).
El proceso SnaBase que se ejecuta en el equipo del TP encontró una anulación.
El administrador del sistema debe examinar el registro de errores a fin de determinar el motivo de la anulación.
AP_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.Cuando este código de retorno se usa con ALLOCATE, puede indicar que no se puede encontrar ningún sistema de comunicaciones para admitir la unidad lógica local (LU). (Por ejemplo, el alias de LU local especificado con TP_STARTED es incorrecto o no se ha configurado). Tenga en cuenta que si lu_alias o mode_name tiene menos de ocho caracteres, debe asegurarse de que estos campos estén llenos de espacios a la derecha. Este error se devuelve si estos parámetros no se rellenan con espacios, ya que no hay ningún nodo disponible que pueda satisfacer la solicitud ALLOCATE .
Cuando ALLOCATE genera este código de retorno para un sistema cliente de Host Integration Server configurado con varios nodos, hay dos códigos de retorno secundarios de la siguiente manera:
0xF0000001
Código de retorno secundario; no se ha iniciado ningún nodo.
0xF0000002
Código de retorno secundario; se ha iniciado al menos un nodo, pero la LU local (cuando se emite TP_STARTED ) no está configurada en ningún nodo activo. El problema podría ser cualquiera de los siguientes:
No se inicia el nodo con la LU local.
La LU local no está configurada.
AP_CONVERSATION_TYPE_MIXED
Código de retorno principal; el TP ha emitido verbos de conversación básicos y asignados. Solo se puede emitir un tipo en una sola conversación.AP_INVALID_VERB_SEGMENT
Código de retorno principal; el bloque de control de verbo (VCB) se ha extendido más allá del final del segmento de datos.AP_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.AP_CONV_BUSY
Código de retorno principal; solo puede haber un verbo de conversación pendiente a la vez en cualquier conversación. Esto puede ocurrir si el TP local tiene varios subprocesos y más de un subproceso emite llamadas APPC con la misma conv_id.AP_THREAD_BLOCKING
Código de retorno principal; el subproceso que llama ya está en una llamada de bloqueo.AP_UNEXPECTED_DOS_ERROR
Código de retorno principal; el sistema operativo devolvió un error a APPC al procesar una llamada de APPC desde el TP local. El código de retorno del sistema operativo se devuelve a través de secondary_rc. Aparece en el orden de intercambio de bytes de Intel. Si el problema persiste, consulte con el administrador del sistema.
Códigos de retorno de la finalización asincrónica
AP_OK
Código de retorno principal; la notificación de solicitud a envío se ha recibido del TP del asociado.
AP_CANCELLED
Se ha terminado el verbo TEST_RTS_AND_POST pendiente. Esto se producirá si la conversación subyacente se ha desasignado o se ha emitido un AP_TP_ENDED. Tenga en cuenta que, al igual que con RECEIVE_AND_POST, el TP sigue siendo responsable de finalizar correctamente la conversación y posiblemente terminar el TP. La emisión de otro verbo, como RECEIVE_IMMEDIATE, en este momento indicará el motivo del error de conversación.
La conversación puede estar en cualquier estado excepto RESET cuando el TP emite este verbo. No hay ningún cambio de estado.
Una característica común de muchas aplicaciones APPC, como 5250 emuladores, es un requisito para detectar la solicitud de un asociado para enviar. Actualmente, esto se puede hacer sondeando la interfaz APPC para detectar la solicitud del asociado. Por ejemplo, una aplicación puede emitir ocasionalmente uno de los verbos siguientes:
- TEST_RTS
Comentarios
RECEIVE_IMMEDIATE y compruebe el campo rts_rcvd
SEND_DATA de cero bytes, de nuevo comprobando el campo rts_rcvd .
Algunos de los problemas asociados a este enfoque de sondeo son:
La aplicación debe interrumpir continuamente su trabajo principal para sondear APPC.
La solicitud del asociado no se detecta tan pronto como esté disponible.
Estos enfoques consumen muchos procesadores.
El verbo TEST_RTS_AND_POST permite que una aplicación que se ejecute en Windows, normalmente un emulador de 5250, solicite una notificación asincrónica cuando el TP del asociado solicite la dirección de envío.
Normalmente, una aplicación APPC emite el verbo TEST_RTS_AND_POST mientras está en estado SEND y, a continuación, continúa con su procesamiento principal. Una solicitud de dirección de envío del TP del asociado se indica de forma asincrónica a la aplicación. Después de tratar con la solicitud del asociado, la aplicación normalmente vuelve al estado SEND, vuelve a emitir TEST_RTS_AND_POST y continúa.
El verbo TEST_RTS_AND_POST se completa de forma sincrónica y el código de retorno AP_OK indica que se ha registrado una solicitud de notificación asincrónica. Es importante destacar que esto no indica que la solicitud de envío se recibió del TP del asociado.
Cuando se recibe la solicitud del asociado para enviar, se produce la finalización del evento asincrónico. Es importante tener en cuenta que esto puede ser antes de la finalización del verbo original del TP local TEST_RTS_AND_POST . Este será el caso si la solicitud del asociado para enviar se recibió antes de que se emitiera el verbo de TEST_RTS_AND_POST tp local, o mientras se procesaba el verbo de TEST_RTS_AND_POST tp local.