Compartir a través de


MC_CONFIRMED

El verbo MC_CONFIRMED responde a una solicitud de confirmación del programa de transacciones de asociado (TP). Informa al TP del asociado de que el TP local no ha detectado un error en los datos recibidos. Dado que el TP que emite la solicitud de confirmación espera una confirmación, MC_CONFIRMED sincroniza el procesamiento de los dos TP.

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

Sintaxis


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

Miembros

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

opext
Parámetro proporcionado. Especifica la extensión de la operación de verbo, AP_MAPPED_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_STARTEDen el TP invocado o por RECEIVE_ALLOCATE en el TP invocado.

conv_id
Parámetro proporcionado. Identifica la conversación establecida entre los dos CSP. El valor de este parámetro lo devuelve MC_ALLOCATE en el TP invocado o por RECEIVE_ALLOCATE en el TP invocado.

rts_rcvd
Parámetro devuelto. Indica si el TP del asociado emitió MC_REQUEST_TO_SEND, que solicita al TP local que cambie la conversación al estado RECEIVE.

Para cambiar al estado RECEIVE, el TP local puede usar MC_PREPARE_TO_RECEIVE, MC_RECEIVE_AND_WAIT o MC_RECEIVE_AND_POST.

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_CONFIRMED_BAD_STATE

Código de retorno secundario; la conversación no está en estado CONFIRM, CONFIRM_SEND o CONFIRM_DEALLOCATE.

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 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.

    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 debe estar en uno de los siguientes estados cuando el TP emite este verbo:

  • CONFIRMAR

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    El nuevo estado viene determinado por el estado anterior: el estado de la conversación cuando el TP local emitido MC_CONFIRMED. El estado anterior se indica mediante el valor del parámetro what_rcvd del verbo receive anterior. Se pueden realizar los siguientes cambios de estado:

Estado anterior Nuevo estado
CONFIRMAR RECEIVE
CONFIRM_SEND ENVIAR
CONFIRM_DEALLOCATE RESET

Solicitudes de confirmación

Una solicitud de confirmación la emite uno de los verbos siguientes en el TP del asociado:

  • MC_CONFIRM

  • MC_PREPARE_TO_RECEIVE si ptr_type se establece en AP_SYNC_LEVEL y el nivel de sincronización de la conversación (establecido por MC_ALLOCATE) se AP_CONFIRM_SYNC_LEVEL

  • MC_DEALLOCATE si dealloc_type está establecido en AP_SYNC_LEVEL y el nivel de sincronización de la conversación (establecido por MC_ALLOCATE) es AP_CONFIRM_SYNC_LEVEL

  • MC_SEND_DATA si el tipo se establece en AP_SEND_DATA_CONFIRM y el nivel de sincronización de la conversación (establecido por MC_ALLOCATE) se AP_CONFIRM_SYNC_LEVEL

    El TP local recibe una solicitud de confirmación a través del parámetro what_rcvd de uno de los verbos siguientes:

  • MC_RECEIVE_IMMEDIATE

  • MC_RECEIVE_AND_WAIT

  • MC_RECEIVE_AND_POST

    MC_CONFIRMED emite el TP local solo si what_rcvd contiene uno de los siguientes valores:

  • AP_CONFIRM_WHAT_RECEIVED

  • AP_CONFIRM_SEND

  • AP_CONFIRM_DEALLOCATE

    Si el parámetro rtn_status se establece en AP_YES, what_rcvd también puede contener los valores siguientes:

  • AP_DATA_COMPLETE_CONFIRM

  • AP_DATA_COMPLETE_CONFIRM_SEND

  • AP_DATA_COMPLETE_CONFIRM_DEALL