Compartir a través de


Cambiar estados de conversación

Un cambio en el estado de la conversación puede resultar de:

  • Verbo emitido por el TP local.

  • Verbo emitido por el TP del asociado.

  • Condición de error.

    En el ejemplo siguiente se muestra cómo los verbos APPC pueden cambiar el estado de la conversación de SEND a RECEIVE y de RECEIVE a SEND.

Nota:

Cualquier TP puede enviar o recibir datos, independientemente de si es el TP invocado (el TP que inició la conversación) o el TP invocable (el TP que respondió a una solicitud para iniciar una conversación).

En este ejemplo se muestra cómo los verbos APPC pueden cambiar el estado de la conversación. En esta tabla, cada estado de conversación aparece en negrita y precede a los verbos APPC que se usan en dicho estado.

Emitido por el TP invocante Emitido por el TP invocable
TP_STARTED
Estado de conversación: RESET
MC_ALLOCATE
(synclevel=AP_CONFIRM_SYNC_LEVL)
Estado de conversación: SEND
MC_SEND_DATA
MC_PREPARARSE_PARA_RECIBIR
(ptr_type=AP_SYNC_LEVEL)
Estado de conversación: RESET
RECIBIR_ASIGNAR
Estado de conversación: RECEIVE
MC_RECIBIR_Y_ESPERAR
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECIBIR_Y_ESPERAR
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
Estado de conversación: CONFIRM_SEND
MC_CONFIRMED
Estado de conversación: SEND
MC_SEND_DATA
MC_CONFIRM
Estado de conversación: RECEIVE
MC_RECIBIR_Y_ESPERAR
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECIBIR_Y_ESPERAR
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_WHAT_RECEIVED)
Estado de conversación: CONFIRM
MC_REQUEST_TO_SEND
MC_CONFIRMED
(rts_rcvd=AP_YES)
MC_PREPARE_TO_RECEIVE
(ptr_type=AP_SYNC_LEVEL)
Estado de conversación: RECEIVE
MC_RECIBIR_Y_ESPERAR
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
Estado de conversación: CONFIRM_SEND
MC_CONFIRMED
Estado de conversación: SEND
MC_SEND_DATA
MC_DEALLOCATE
(dealloc_type=AP_SYNC_LEVEL)
Estado de conversación: RECEIVE
MC_RECIBIR_Y_ESPERAR
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECIBIR_Y_ESPERAR
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_DEALLOCATE)
Estado de conversación: CONFIRM_DEALLOCATE
MC_CONFIRMADO
Estado de conversación: RESET Estado de conversación: RESET
TP_FINALIZADO TP_FINALIZADO

Estados iniciales

Antes de asignar la conversación, el estado se reinicia para ambos TP.

En el ejemplo, después de asignar la conversación, el estado inicial es ENVIAR para el TP invocador y RECIBIR para el TP invocable.

Cambiar al estado RECEPCIÓN

MC_PREPARE_TO_RECEIVE permite que un TP cambie la conversación de ENVIAR al estado RECEIVE. Este verbo:

  • Vacía el búfer de envío de la LU local.

  • Envía el indicador de AP_CONFIRM_SEND al socio TP a través del parámetro what_rcvd de un verbo receive. Este indicador indica al partner TP que se espera una respuesta MC_CONFIRMED antes de que el TP del asociado pueda empezar a enviar datos.

    El procesamiento de confirmación se realiza cuando se cumplen las condiciones siguientes:

  • El parámetro ptr_type se establece en AP_SYNC_LEVEL.

  • El nivel de sincronización de la conversación se establece en AP_CONFIRM_SYNC_LEVEL.

    Para obtener más información sobre el procesamiento de confirmación, vea Procesamiento de confirmación.

Nota:

Emitir MC_RECEIVE_AND_WAIT mientras la conversación está en estado SEND vacía el búfer de envío de la LU y cambia el estado de conversación a RECEIVE. Cambiar el estado de la conversación de esta manera no admite el procesamiento de confirmación.

Cambiar al estado de envío

MC_REQUEST_TO_SEND informa al TP del asociado (para el que la conversación está en estado SEND) de que el TP local (para el que la conversación está en estado RECEIVE) quiere enviar datos. Esta solicitud se comunica al TP del asociado a través del parámetro rts_rcvd de MC_CONFIRM. (El parámetro rts_rcvd también se devuelve a MC_SEND_DATA y a otros verbos).

Cuando el TP del asociado emite MC_PREPARE_TO_RECEIVE, el estado de conversación cambia a RECEIVE para el TP del asociado, lo que permite que el TP local envíe datos.

Nota:

La emisión MC_REQUEST_TO_SEND no cambia el estado de la conversación. Al recibir una solicitud para enviar, el TP del asociado no está obligado a cambiar el estado de conversación; puede omitir la solicitud.