Ejemplo de una conversación asignada

Para obtener información general sobre las conversaciones asignadas, vea Conversaciones básicas y asignadas en comparación.

En el ejemplo siguiente de una conversación asignada se muestran los verbos appC usados para iniciar una conversación, intercambiar datos y finalizar la conversación. Los parámetros del verbo APPC están entre paréntesis.

Emitido por el TP de invocación Emitido por el TP invocable
TP_STARTED
MC_ALLOCATE
MC_SEND_DATA
MC_DEALLOCATE
TP_ENDED RECEIVE_ALLOCATE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(rtn_status=AP_NO)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_DEALLOC_NORM)
TP_ENDED

En los párrafos siguientes se describen los verbos que se usan en una conversación asignada.

Verbos para iniciar una conversación asignada

Para iniciar una conversación asignada, la invocación de TP emite los verbos siguientes:

  • TP_STARTED, que notifica a APPC que el TP local está iniciando una conversación.

  • MC_ALLOCATE, que solicita que APPC establezca una conversación entre el TP local y el TP del asociado.

    Los problemas de TP invocables RECEIVE_ALLOCATE, que informa a APPC de que está listo para iniciar una conversación con el TP invocado.

Verbos para enviar datos en una conversación asignada

MC_SEND_DATA coloca un registro de datos (un registro que contiene los datos de la aplicación que se van a transmitir) en el búfer de envío de la LU local. La transmisión de datos al TP del asociado no se produce hasta que se produce uno de los siguientes eventos:

  • El búfer de envío se rellena.

  • El TP de envío emite un verbo que obliga a APPC a vaciar el búfer y enviar datos al TP del asociado.

    En el ejemplo anterior, el búfer de envío contiene el registro de datos y la solicitud de MC_ALLOCATE (que precede al registro de datos). Por lo tanto, en el ejemplo, MC_DEALLOCATE vacía el búfer, enviando la solicitud de MC_ALLOCATE y el registro de datos al TP del asociado. Otros verbos que vacían el búfer son MC_CONFIRM y MC_FLUSH.

Verbos para recibir datos en una conversación asignada

El verbo MC_RECEIVE_AND_WAIT permite que un TP reciba un registro de datos o información de estado. Si no hay datos disponibles actualmente, el TP espera a que lleguen los datos. Para los sistemas Windows, emita MC_RECEIVE_AND_WAIT junto con WinAsyncAPPC en lugar de la versión de bloqueo de esta llamada.

En el ejemplo, los problemas de TP receptores MC_RECEIVE_AND_WAIT dos veces. La primera vez, emite el verbo para recibir datos. Cuando termine de recibir el registro de datos completo (what_rcvd es AP_DATA_COMPLETE), emite MC_RECEIVE_AND_WAIT de nuevo para recibir un código de retorno. El código de retorno AP_DEALLOC_NORMAL indica que la conversación se ha desasignado.

Nota

MC_RECEIVE_IMMEDIATE realiza la misma función que MC_RECEIVE_AND_WAIT, salvo que no espera si los datos no están disponibles actualmente en el TP del asociado. En su lugar, devuelve una respuesta sin datos disponible al TP que realiza la llamada.

Verbos para finalizar una conversación asignada

Para finalizar una conversación asignada, uno de los problemas de los CSP MC_DEALLOCATE, lo que hace que APPC desasigne la conversación entre los dos CSP.

Una vez desasignada la conversación, ambos CSP emiten TP_ENDED.

Nota

Un TP puede participar en varias conversaciones simultáneamente. En este caso, los problemas de TP TP_ENDED después de desasignar todas las conversaciones.