Condividi tramite


Elaborazione conferma

La sequenza di eventi per l'elaborazione della conferma è la seguente:

  1. Stabilire il livello di sincronizzazione.

  2. Inviare una richiesta di conferma.

  3. Ricevere i dati e la richiesta di conferma.

  4. Rispondere alla richiesta di conferma.

  5. Deallocare la conversazione.

    Utilizzando l'elaborazione della conferma, un tp invia una richiesta di conferma con i dati; il partner TP conferma la ricezione dei dati o indica che si è verificato un errore. Ogni volta che i due TP scambiano una richiesta di conferma e una risposta, vengono sincronizzati.

Annotazioni

Anche se l'esempio in questa sezione non mostra questo, qualsiasi TP può inviare o ricevere dati, indipendentemente dal fatto che il TP sia il TP richiamato o il TP richiamabile.

Nell'esempio seguente viene illustrata l'elaborazione della conferma.

Rilasciato dal tp di richiamo Rilasciato dal TP richiamabile
TP_STARTED
MC_ALLOCATE
(synclevel=AP_CONFIRM_SYNC_LEVEL)
MC_INVIO_DATI
(type=AP_SEND_DATA_CONFIRM)
RICEVI_ASSEGNA
MC_RECEIVE_AND_WAIT
MC_INVIO_DATI
(type=AP_SEND_DATA_DEALLOC_SYNC_LEVEL)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(rtn_status=AP_SÌ)
(what_rcvd= AP_DATA_COMPLETE_CONFIRM_ DEALLOCATE)
MC_CONFIRMED
TP_ENDED TP_ENDED

Definizione del livello di sincronizzazione

Il parametro synclevel di MC_ALLOCATE determina il livello di sincronizzazione della conversazione. Esistono tre possibili livelli di sincronizzazione:

  • AP_NONE, con cui non viene eseguita l'elaborazione della conferma.

  • AP_CONFIRM_SYNC_LEVEL, in cui i partner commerciali possono richiedere la conferma della ricezione dei dati e rispondere alle richieste di conferma dei dati.

  • AP_SYNCPT, in cui i TP operano con il supporto del Livello 2 del Punto di Sincronizzazione per la conferma della ricezione dei dati.

Invio di una richiesta di conferma

MC_SEND_DATA con tipo AP_SEND_DATA_CONFIRM ha due effetti:

  • Svuota il buffer di invio della LU locale e invia tutti i dati contenuti nel buffer al TP del partner.

  • Invia una richiesta di conferma che viene ricevuta dal TP del partner tramite il parametro what_rcvd di un verbo di ricezione.

    Dopo l'emissione di MC_SEND_DATA, il tp locale attende la conferma dal tp del partner.

Ricezione di dati e richiesta di conferma

Il parametro what_rcvd di MC_RECEIVE_AND_WAIT indica:

  • Stato dei dati ricevuti: completo o incompleto.

  • È prevista una futura elaborazione del TP locale.

    Nell'esempio what_rcvd è AP_DATA_COMPLETE_CONFIRM, a indicare che lo stato è completo e viene richiesta una conferma.

Risposta a una richiesta di conferma

Il partner TP rilascia MC_CONFIRMED per confermare la ricezione dei dati. In questo modo il tp locale viene liberato per riprendere l'elaborazione.

Deallocazione della chat

MC_SEND_DATA invia una richiesta di conferma con i dati quando tutte le condizioni seguenti sono vere:

  • Il livello di sincronizzazione della conversazione (stabilito dal parametro synclevel di MC_ALLOCATE) è AP_CONFIRM_SYNC_LEVEL.

  • Il parametro di tipo di MC_SEND_DATA è impostato su AP_SEND_DATA_DEALLOC_SYNC_LEVEL.

  • Il parametro what_rcvd del MC_RECEIVE_AND_WAIT finale è AP_DATA_COMPLETE_CONFIRM_DEALLOCATE, indicando che è necessaria una conferma della ricezione dei dati prima che APPC deallochi la conversazione. Il TP locale attende questa conferma fino a quando il partner TP emette MC_CONFIRMED.