Compartir a través de


REQUEST_TO_SEND

El REQUEST_TO_SEND verbo notifica al programa de transacciones de asociado (TP) que el TP local quiere enviar datos.

En la estructura siguiente se describe el bloque de control de verbos (VCB) usado por el verbo REQUEST_TO_SEND .

Sintaxis

  
struct request_to_send {  
    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;  
};   

Miembros

opcode
Parámetro proporcionado. Especifica el código de operación de verbo, AP_B_REQUEST_TO_SEND.

opext
Parámetro proporcionado. Especifica la extensión de la 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 devuelve 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.

Allocate devuelve el valor de este parámetro en el TP invocado o por RECEIVE_ALLOCATE en el TP invocado.

Códigos de retorno

AP_OK
Código de retorno principal; el verbo se ha ejecutado correctamente.

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 coincidía con un identificador de conversación asignado por APPC.

AP_BAD_TP_ID

Código de retorno secundario; el valor de tp_id no coincidía con un identificador de TP asignado por APPC.

AP_STATE_CHECK
Código de retorno principal; el verbo no se ejecutó porque se emitió en un estado no válido.

AP_R_T_S_BAD_STATE

Código de retorno secundario; la conversación no está en un estado permitido cuando el TP emitió este verbo.

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 pudo 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 se rellenan con 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 Microsoft 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 el mismo 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.

Comentarios

La conversación puede estar en cualquiera de los siguientes estados cuando el TP emite este verbo:

CONFIRMAR

PENDING_POST (SO/2)

RECEIVE

No hay ningún cambio de estado.

El programa asociado recibe la notificación de solicitud a envío mediante el parámetro rts_rcvd de los verbos siguientes:

  • CONFIRMAR

  • RECEIVE_AND_POST

  • RECEIVE_AND_WAIT

  • RECEIVE_IMMEDIATE

  • SEND_DATA

  • SEND_ERROR

    También se indica mediante una primary_rc de AP_OK en TEST_RTS.

    La notificación de solicitud de envío se envía inmediatamente al TP del asociado; APPC no espera hasta que el búfer de envío se llene o se vacíe. Por lo tanto, la notificación de solicitud a envío puede llegar fuera de secuencia. Por ejemplo, si el TP local está en estado SEND y emite PREPARE_TO_RECEIVE seguido de REQUEST_TO_SEND, el TP del asociado, en estado RECEIVE, puede recibir la notificación de solicitud a envío antes de recibir la notificación de envío. Por este motivo, la solicitud de envío se puede notificar a un TP a través de un verbo de recepción.

    En respuesta a esta solicitud, el TP del asociado puede cambiar la conversación a:

  • Estado RECEIVE emitiendo PREPARE_TO_RECEIVE o RECEIVE_AND_WAIT.

  • PENDING_POST estado emitiendo RECEIVE_AND_POST.

    El TP del asociado también puede omitir la solicitud de envío.

    El estado de conversación cambia a SEND para el TP local cuando el TP local recibe uno de los siguientes valores a través del parámetro what_rcvd de un verbo de recepción posterior:

  • AP_CONFIRM_SEND y respuestas con CONFIRMADO

  • AP_DATA_COMPLETE_CONFIRM_SEND y respuestas con CONFIRMADO

  • AP_DATA_CONFIRM_SEND y respuestas con CONFIRMADO

  • AP_SEND

    Los verbos de recepción se RECEIVE_AND_POST, RECEIVE_IMMEDIATE y RECEIVE_AND_WAIT.