MC_CONFIRM

El verbo MC_CONFIRM envía el contenido del búfer de envío de la unidad lógica local (LU) y una solicitud de confirmación al programa de transacción del asociado (TP).

La siguiente estructura describe el bloque de control de verbo (VCB) utilizado por el verbo MC_CONFIRM verbo.

Sintaxis

  
struct mc_confirm {  
    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_CONFIRM.

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

conv_id
Parámetro devuelto. Identifica la conversación establecida entre los dos puntos de conexión.

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 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 TP asignado por APPC.

AP_CONFIRM_ON_SYNC_LEVEL_NONE

Código de retorno secundario; el TP local intentó usar MC_CONFIRM en una conversación con un nivel de sincronización de AP_NONE. El nivel de sincronización, establecido por MC_ALLOCATE, debe ser AP_CONFIRM_SYNC_LEVEL.

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

AP_CONFIRM_BAD_STATE

Código de retorno secundario; la conversación no estaba en estado SEND.

AP_CONFIRM_NOT_LL_BDY

Código de retorno secundario; la conversación para el TP local estaba en estado SEND y el TP local no terminó de enviar un registro lógico.

AP_ALLOCATION_ERROR
Código de retorno principal; APPC no ha podido asignar una conversación. El estado de la conversación se establece en RESET.

Este código se puede devolver a través de un verbo emitido después de MC_ALLOCATE.

AP_ALLOCATION_FAILURE_NO_RETRY

Código de retorno secundario; no se puede asignar la conversación debido a una condición permanente, como un error de configuración o un error de protocolo de sesión. Para determinar el error, el administrador del sistema debe examinar el archivo de registro de errores. No vuelva a intentar la asignación hasta que se haya corregido el error.

AP_ALLOCATION_FAILURE_RETRY

Código de retorno secundario; no se pudo asignar la conversación debido a una condición temporal, como un error de vínculo. El motivo del error se registra en el registro de errores del sistema. Vuelva a intentar la asignación.

AP_CONVERSATION_TYPE_MISMATCH

Código de retorno secundario; la LU o TP del asociado no admite el tipo de conversación (básico o asignado) especificado en la solicitud de asignación.

AP_PIP_NOT_ALLOWED

Código de retorno secundario; la solicitud de asignación especifica datos PIP, pero el TP del asociado no requiere estos datos o el LU del asociado no los admite.

AP_PIP_NOT_SPECIFIED_CORRECTLY

Código de retorno secundario; el TP del asociado requiere datos PIP, pero la solicitud de asignación no especificó ningún dato PIP o un número incorrecto de parámetros.

AP_SECURITY_NOT_VALID

Código de retorno secundario; El LU del asociado no aceptó el identificador de usuario o la contraseña especificados en la solicitud de asignación.

AP_SYNC_LEVEL_NOT_SUPPORTED

Código de retorno secundario; el TP del asociado no admite el sync_level (AP_NONE, AP_CONFIRM_SYNC_LEVEL o AP_SYNCPT) especificado en la solicitud de asignación o el sync_level no se ha reconocido.

AP_TP_NAME_NOT_RECOGNIZED

Código de retorno secundario; la LU del asociado no reconoce el nombre tp especificado en la solicitud de asignación.

AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

Código de retorno secundario; la LU remota rechazó la solicitud de asignación porque no pudo iniciar el TP del asociado solicitado. La condición es permanente. El motivo del error se puede registrar en el nodo remoto. No vuelva a intentar la asignación hasta que se haya corregido el error.

AP_TRANS_PGM_NOT_AVAIL_RETRY

Código de retorno secundario; la LU remota rechazó la solicitud de asignación porque no pudo iniciar el TP del asociado solicitado. La condición puede ser temporal, como un tiempo de espera. El motivo del error se puede registrar en el nodo remoto. Vuelva a intentar la asignación.

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

  • SnaBase en el equipo de TP ha encontrado un ABEND.

    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_CONV_FAILURE_NO_RETRY
    Código de retorno principal; la conversación se finalizó debido a una condición permanente, como un error de protocolo de sesión. El administrador del sistema debe examinar el registro de errores del sistema para determinar la causa del error. No vuelva a intentar la conversación hasta que se corrija el error.

    AP_CONV_FAILURE_RETRY
    Código de retorno principal; la conversación se finalizó debido a un error temporal. Reinicie el TP para ver si el problema se produce de nuevo. Si es así, el administrador del sistema debe examinar el registro de errores para determinar la causa del error.

    AP_CONVERSATION_TYPE_MIXED
    Código de retorno principal; el TP ha emitido verbos de conversación tanto básicos como 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_PROG_ERROR_PURGING
    Código de retorno principal; mientras se encuentra en los estados RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND o CONFIRM_DEALLOCATE, el TP del asociado emitió MC_SEND_ERROR. Los datos enviados pero aún no recibidos se purgan.

    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.

    AP_DEALLOC_ABEND
    Código de retorno principal; la conversación se ha desasignado por uno de los siguientes motivos:

  • El tp de asociado emitido MC_DEALLOCATE con dealloc_type set para AP_ABEND.

  • El TP del asociado encontró un ABEND, lo que provocó que la LU del asociado enviara una MC_DEALLOCATE cliente.

Observaciones

En respuesta a MC_CONFIRM, el tp del asociado normalmente MC_CONFIRMED para confirmar que ha recibido los datos sin errores. (Si el TP del asociado encuentra un error, MC_SEND_ERROR o desasigna la conversación de forma anómala).

El TP solo puede MC_CONFIRM si el nivel de sincronización de la conversación, establecido por MC_ALLOCATE, es AP_CONFIRM_SYNC_LEVEL.

La conversación debe estar en estado SEND cuando el TP emite este verbo. Los cambios de estado, resumidos en la tabla siguiente, se basan en el valor del primary_rc.

primary_rc Nuevo estado
AP_OK Sin cambios
AP_ALLOCATION_ERROR RESET
AP_COMM_SUBSYSTEM_ABENDED AP_COMM_SUBSYSTEM_NOT_LOADED RESTABLECIMIENTO DEL RESTABLECIMIENTO
AP_CONV_FAILURE_RETRY AP_CONV_FAILURE_NO_RETRY RESTABLECIMIENTO DEL RESTABLECIMIENTO
AP_DEALLOC_ABEND AP_DEALLOC_ABEND_PROG AP_DEALLOC_ABEND_SVC AP_DEALLOC_ABEND_TIMER RESTABLECIMIENTO DEL RESTABLECIMIENTO DEL RESTABLECIMIENTO
AP_PROG_ERROR_PURGING AP_SVC_ERROR_PURGING RECEPCIÓN DE RECEPCIÓN

MC_CONFIRM espera una respuesta del TP del asociado. Uno de los verbos siguientes del TP del asociado genera una respuesta:

  • MC_CONFIRMED

  • MC_SEND_ERROR

  • MC_DEALLOCATE con dealloc_type establecido en AP_ABEND

  • TP_ENDED

    Al emitir MC_CONFIRM despuésde MC_ALLOCATE, el TP invocando puede determinar inmediatamente si la asignación se ha realizado correctamente (si synclevel está establecido en AP_CONFIRM_SYNC_LEVEL).

    Normalmente, el valor del parámetro mode_name del verbo MC_ALLOCATE debe coincidir con el nombre de un modo configurado para el nodo del TP invocado y asociado durante la configuración con la LU del asociado.

    Si uno de los modos asociados a la LU del asociado en el nodo de TP invocado es un modo implícito, la sesión establecida entre las dos LU será del modo implícito cuando ningún nombre de modo asociado a la LU del asociado coincida con el valor de mode_name. Para obtener más información, consulte Host Integration Server Ayuda.

    Varios parámetros de MC_ALLOCATE son cadenas EBCDIC o ASCII. Un TP puede usar el verbo de servicio común (CSV) CONVERT para traducir una cadena de un juego de caracteres al otro.

    Para enviar la solicitud MC_ALLOCATE inmediatamente, el TP que invoca puede emitir MC_FLUSH o MC_CONFIRM inmediatamente después de MC_ALLOCATE. De lo contrario, MC_ALLOCATE solicitud se acumula con otros datos en el búfer de envío de LU local hasta que el búfer está lleno.