Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una modifica dello stato della conversazione può derivare da:
Verbo emesso dal TP locale.
Verbo rilasciato dal partner TP.
Condizione di errore.
L'esempio seguente illustra come i verbi APPC possono modificare lo stato della conversazione da SEND a RECEIVE e da RECEIVE a SEND.
Annotazioni
Qualsiasi TP può inviare o ricevere dati, indipendentemente dal fatto che si tratti del TP che ha avviato la conversazione o del TP richiamabile (tp che ha risposto a una richiesta di avvio di una conversazione).
Questo esempio mostra 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 in tale stato.
| Rilasciato dal tp di richiamo | Rilasciato dal TP richiamabile |
|---|---|
| TP_STARTED | |
| Stato conversazione: RESET | |
| MC_ALLOCATE | |
| (synclevel=AP_CONFIRM_SYNC_LEVL) | |
| Stato conversazione: SEND | |
| MC_SEND_DATA | |
| MC_PREPARE_TO_RECEIVE | |
| (ptr_type=AP_SYNC_LEVEL) | |
| Stato conversazione: RESET | |
| RICEVI_ASSEGNA | |
| Stato conversazione: RICEZIONE | |
| MC_RICEVI_E_ATTENDI | |
| (primary_rc=AP_OK) | |
| (what_rcvd=AP_DATA_COMPLETE) | |
| MC_RICEVI_E_ATTENDI | |
| (primary_rc=AP_OK) | |
| (what_rcvd=AP_CONFIRM_SEND) | |
| Stato conversazione: CONFIRM_SEND | |
| MC_CONFIRMED | |
| Stato conversazione: SEND | |
| MC_INVIO_DATI | |
| MC_CONFIRM | |
| Stato conversazione: RICEZIONE | |
| MC_RECEIVE_AND_WAIT | |
| (primary_rc=AP_OK) | |
| (what_rcvd=AP_DATA_COMPLETE) | |
| Ricevi_e_Attendi_MC | |
| (primary_rc=AP_OK) | |
| (what_rcvd=AP_CONFIRM_COSA_RICEVUTO) | |
| Stato conversazione: CONFERMA | |
| MC_RICHIESTA_DI_INVIO | |
| MC_CONFIRMED | |
| (rts_rcvd=AP_YES) | |
| MC_PREPARARE_PER_RICEVERE | |
| (ptr_type=AP_SYNC_LEVEL) | |
| Stato conversazione: RICEZIONE | |
| MC_RECEIVE_AND_WAIT | |
| (primary_rc=AP_OK) | |
| (what_rcvd=AP_CONFIRM_SEND) | |
| Stato conversazione: CONFIRM_SEND | |
| MC_CONFIRMED | |
| Stato conversazione: SEND | |
| Invio dati MC | |
| MC_DEALLOCATE | |
| (dealloc_type=AP_SYNC_LEVEL) | |
| Stato 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_CONFERMATO | |
| Stato conversazione: RESET | Stato conversazione: RESET |
| TP_CONCLUSO | TP_ENDED |
Stati iniziali
Prima di allocare la conversazione, lo stato è RESET per entrambi i TP.
Nell'esempio, dopo l'allocazione della conversazione, lo stato iniziale è SEND per il TP chiamante e RECEIVE per il TP invocabile.
Modifica dello stato RECEIVE
MC_PREPARE_TO_RECEIVE consente a un tp di modificare la conversazione dallo stato SEND a RECEIVE. Questo verbo:
Svuota 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 informa il partner TP che è prevista una risposta MC_CONFIRMED prima che il TP del partner possa iniziare a inviare dati.
L'elaborazione della conferma viene eseguita quando vengono soddisfatte le condizioni seguenti:
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 conferma.
Annotazioni
L'emissione del comando MC_RECEIVE_AND_WAIT mentre la conversazione si trova nello stato SEND svuota il buffer invio della LU e modifica lo stato della conversazione in RECEIVE. La modifica dello stato della conversazione in questo modo non supporta l'elaborazione della conferma.
Modifica dello stato SEND
MC_REQUEST_TO_SEND informa il partner TP (per cui la conversazione è in stato SEND) che il TP locale (per cui la conversazione è nello 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 cambia in RECEIVE per il tp del partner, rendendo possibile che il tp locale invii i dati.
Annotazioni
L'emissione di MC_REQUEST_TO_SEND non modifica lo stato della conversazione. Dopo aver ricevuto una richiesta di invio, il tp del partner non è necessario per modificare lo stato della conversazione; può ignorare la richiesta.