Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El verbo MC_PREPARE_TO_RECEIVE cambia el estado de la conversación para el programa de transacciones local (TP) de SEND a RECEIVE.
En la estructura siguiente se describe el bloque de control de verbos (VCB) usado por el verbo MC_PREPARE_TO_RECEIVE .
Sintaxis
struct mc_prepare_to_receive {
unsigned short opcode;
unsigned char opext;
unsigned char primary_rc;
unsigned short reserv2;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char ptr_type;
unsigned char locks;
};
Observaciones
Miembros
Opcode
Parámetro proporcionado. Especifica el código de operación de verbo, AP_M_PREPARE_TO_RECEIVE.
opext
Parámetro proporcionado. Especifica la extensión de operación de verbo, AP_MAPPED_CONVERSATION.
reserv2
Un campo reservado.
primary_rc
Parámetro devuelto. Especifica el código de retorno principal establecido por APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC emitido. Consulte Códigos de retorno para obtener códigos de error válidos para este verbo.
secondary_rc
Parámetro devuelto. Especifica el código de retorno secundario establecido por APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC emitido. Consulte Códigos de retorno para obtener 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 la invocación de TPo RECEIVE_ALLOCATE en el TP invocado.
conv_id
Parámetro proporcionado. Proporciona el identificador de conversación. El valor de este parámetro lo devuelve MC_ALLOCATE en el TP invocado o RECEIVE_ALLOCATE en el TP invocado.
ptr_type
Parámetro proporcionado. Especifica cómo realizar el cambio de estado.
Use AP_FLUSH para enviar el contenido del búfer de envío de la unidad lógica local (LU) al LU del asociado (y TP) antes de cambiar el estado de la conversación a RECEIVE.
El valor AP_SYNC_LEVEL usa el nivel de sincronización de la conversación (establecido por MC_ALLOCATE) para determinar cómo realizar el cambio de estado.
Si el nivel de sincronización de la conversación es AP_NONE, APPC envía el contenido del búfer de envío de la LU local al TP del asociado antes de cambiar el estado de la conversación a RECEIVE. Si el nivel de sincronización es AP_CONFIRM_SYNC_LEVEL, APPC envía el contenido del búfer de envío de la LU local y una solicitud de confirmación al TP del asociado. Tras recibir la confirmación del TP del asociado, APPC cambia el estado de la conversación a RECEIVE. Sin embargo, si el TP del asociado notifica un error, el estado cambia a RECEIVE o RESET. Vea los comentarios de este tema.
Cerraduras
Parámetro proporcionado. Especifica cuándo APPC debe devolver el control al TP local.
Use este parámetro solo si ptr_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. (De lo contrario, se omite el parámetro).
AP_LONG indica que APPC devuelve el control al TP local cuando la confirmación y los datos posteriores del TP del asociado llegan a la LU local. (Este método da como resultado un uso más eficaz de la red, pero requiere un tiempo más largo para devolver el control al TP local).
AP_SHORT indica que APPC devuelve el control al TP local cuando la confirmación del TP del asociado llega a la LU local.
Códigos devueltos
AP_OK
Código de retorno principal; el verbo se ejecutó correctamente.AP_PARAMETER_CHECK
Código de retorno principal; el verbo no se ejecutó debido a un error de 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_P_TO_R_INVALID_TYPE
Código de retorno secundario; el parámetro ptr_type no se estableció en un valor válido.
AP_STATE_CHECK
Código de retorno principal; el verbo no se ejecutó porque se emitió en un estado no válido.AP_P_TO_R_NOT_SEND_STATE
Código de retorno secundario; la conversación no estaba en estado SEND.
AP_P_TO_R_NOT_LL_BDY
Código de retorno secundario; 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 corrija 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 del asociado o TP 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 especificó datos PIP, pero el TP del asociado no requiere estos datos o la LU del asociado no la 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 identificador de usuario o la contraseña especificados en la solicitud de asignación no lo aceptó la LU del asociado.
AP_SYNC_LEVEL_NOT_SUPPORTED
Código de retorno secundario; el TP del asociado no admite el sync_level (AP_NONE o AP_CONFIRM_SYNC_LEVEL) especificado en la solicitud de asignación o no se reconoció el sync_level .
AP_TP_NAME_NOT_RECOGNIZED
Código de retorno secundario; la LU del asociado no reconoce el nombre de 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 puede iniciar sesión en el nodo remoto. No vuelva a intentar la asignación hasta que se corrija 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 puede iniciar sesión 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 usado por esta conversación encontró un ABEND.
La conexión entre el TP y el nodo PU 2.1 se ha interrumpido (error laN).
SnaBase en el equipo del TP encontró un ABEND.
El administrador del sistema debe examinar el registro de errores para determinar el motivo del ABEND.
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 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 VCB se extendió más allá del final del segmento de datos.AP_PROG_ERROR_PURGING
Código de retorno principal; mientras que en estado 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 pila de la aplicación es demasiado pequeño para ejecutar el verbo. Aumente el tamaño de la 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 realiza la llamada ya está en una llamada de bloqueo.AP_UNEXPECTED_DOS_ERROR
Código de retorno principal; el sistema operativo ha devuelto un error a APPC mientras procesa una llamada APPC desde el TP local. El código de retorno del sistema operativo se devuelve a través del secondary_rc. Aparece en el orden de intercambio de bytes de Intel. Si el problema persiste, consulte al 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 emitió MC_DEALLOCATE con dealloc_type establecido en AP_ABEND.
El TP de asociado encontró un ABEND, lo que provoca que la LU del asociado envíe una solicitud de MC_DEALLOCATE .
Comentarios
Antes de cambiar el estado de la conversación, este verbo realiza el equivalente de uno de los siguientes:
MC_FLUSH, enviando el contenido del búfer de envío de la LU local al LU del asociado (y TP).
MC_CONFIRM, enviando el contenido del búfer de envío de la LU local y una solicitud de confirmación al TP del asociado.
Una vez ejecutado correctamente este verbo, el TP local puede recibir datos.
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 de primary_rc.
| primary_rc | Nuevo estado |
|---|---|
| AP_OK | RECIBIR |
| AP_ALLOCATION_ERROR | REINICIAR |
| AP_CONV_FAILURE_RETRY | REINICIAR |
| AP_CONV_FAILURE_NO_RETRY | REINICIAR |
| AP_DEALLOC_ABEND | REINICIAR |
| AP_DEALLOC_ABEND_PROG | REINICIAR |
| AP_DEALLOC_ABEND_SVC | REINICIAR |
| AP_DEALLOC_ABEND_TIMER | REINICIAR |
| AP_PROG_ERROR_PURGING | RECIBIR |
| AP_SVC_ERROR_PURGING | RECIBIR |
La conversación no cambia al estado SEND para el TP del asociado hasta que el TP del asociado reciba uno de los siguientes valores a través del parámetro what_rcvd de un verbo de recepción posterior:
AP_SEND
AP_CONFIRM_SEND y respuestas con MC_CONFIRMED
AP_DATA_COMPLETE_CONFIRM_SEND y respuestas con MC_CONFIRMED
AP_DATA_CONFIRM_SEND y respuestas con MC_CONFIRMED
Los verbos de recepción son MC_RECEIVE_AND_POST, MC_RECEIVE_IMMEDIATE y MC_RECEIVE_AND_WAIT.