Condividi tramite


Modifica degli stati di conversazione

Una modifica nello stato della conversazione può risultare da:

  • Verbo rilasciato dal TP locale.

  • Verbo rilasciato dal partner TP.

  • Condizione di errore.

    Nell'esempio seguente viene illustrato come i verbi APPC possono modificare lo stato della conversazione da SEND a RECEIVE e da RECEIVE a SEND.

Nota

Qualsiasi TP può inviare o ricevere dati, indipendentemente dal fatto che sia il TP (tp che ha avviato la conversazione) o il TP richiamabile (il TP che ha risposto a una richiesta per avviare una conversazione).

In questo esempio viene illustrato come i verbi APPC possono modificare lo stato della conversazione. In questa tabella ogni stato della conversazione viene visualizzato in grassetto e precede i verbi APPC usati durante tale stato.

Rilasciato dal TP richiamato Rilasciato dal TP richiamabile
TP_STARTED
Stato della conversazione: RESET
MC_ALLOCATE
(synclevel=AP_CONFIRM_SYNC_LEVL)
Stato della conversazione: SEND
MC_SEND_DATA
MC_PREPARE_TO_RECEIVE
(ptr_type=AP_SYNC_LEVEL)
Stato della conversazione: RESET
RECEIVE_ALLOCATE
Stato della conversazione: RICEZIONE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
Stato della conversazione: CONFIRM_SEND
MC_CONFIRMED
Stato della conversazione: SEND
MC_SEND_DATA
MC_CONFIRM
Stato della conversazione: RICEZIONE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_WHAT_RECEIVED)
Stato della conversazione: CONFERMARE
MC_REQUEST_TO_SEND
MC_CONFIRMED
(rts_rcvd=AP_YES)
MC_PREPARE_TO_RECEIVE
(ptr_type=AP_SYNC_LEVEL)
Stato della conversazione: RICEZIONE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_SEND)
Stato della conversazione: CONFIRM_SEND
MC_CONFIRMED
Stato della conversazione: SEND
MC_SEND_DATA
MC_DEALLOCATE
(dealloc_type=AP_SYNC_LEVEL)
Stato della conversazione: RICEZIONE
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_DATA_COMPLETE)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(what_rcvd=AP_CONFIRM_DEALLOCATE)
Stato della conversazione: CONFIRM_DEALLOCATE
MC_CONFIRMED
Stato della conversazione: RESET Stato della conversazione: RESET
TP_ENDED TP_ENDED

Stati iniziali

Prima di allocare la conversazione, lo stato è RESET per entrambi i provider di servizi.

Nell'esempio, dopo l'allocazione della conversazione, lo stato iniziale è SEND per il nome TP e RECEIVE per il TP richiamabile.

Modifica dello stato DI RICEZIONE

MC_PREPARE_TO_RECEIVE consente a un TP di modificare la conversazione dallo stato SEND a RECEIVE. Questo verbo:

  • Scarica il buffer di invio dell'lu locale.

  • Invia l'indicatore AP_CONFIRM_SEND al partner TP tramite il parametro what_rcvd di un verbo di ricezione. Questo indicatore indica al partner TP che è prevista una risposta MC_CONFIRMED prima che il TP partner possa iniziare a inviare dati.

    L'elaborazione di conferma viene eseguita quando le condizioni seguenti sono vere:

  • Il parametro ptr_type è impostato su AP_SYNC_LEVEL.

  • Il livello di sincronizzazione della conversazione è impostato su AP_CONFIRM_SYNC_LEVEL.

    Per altre informazioni sull'elaborazione della conferma, vedere Elaborazione di conferma.

Nota

L'emissione di MC_RECEIVE_AND_WAIT mentre la conversazione si trova nello stato SEND scarica il buffer di invio dell'LU e modifica lo stato della conversazione in RECEIVE. La modifica dello stato della conversazione in questo modo non supporta l'elaborazione di conferma.

Modifica dello stato SEND

MC_REQUEST_TO_SEND informa il partner TP (per il quale la conversazione è in stato SEND) che il TP locale (per il quale la conversazione è in stato RECEIVE) vuole inviare dati. Questa richiesta viene comunicata al partner TP tramite il parametro rts_rcvd di MC_CONFIRM. Il parametro rts_rcvd viene restituito anche a MC_SEND_DATA e ad altri verbi.

Quando il partner TP rilascia MC_PREPARE_TO_RECEIVE, lo stato della conversazione viene modificato in RECEIVE per il partner TP, rendendo possibile che il TP locale invii dati.

Nota

L'emissione di MC_REQUEST_TO_SEND non modifica lo stato della conversazione. Al momento della ricezione di una richiesta di invio, il partner TP non è necessario modificare lo stato della conversazione; può ignorare la richiesta.