Condividi tramite


Elaborazione delle conferme

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 provider di servizi di transazione scambiano una richiesta di conferma e una risposta, vengono sincronizzati.

Nota

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 richiamante o il tp richiamabile.

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

Rilasciato dal richiamo del tp Rilasciato dal tp richiamabile
TP_STARTED
MC_ALLOCATE
(synclevel=AP_CONFIRM_SYNC_LEVEL)
MC_SEND_DATA
(type=AP_SEND_DATA_CONFIRM)
RECEIVE_ALLOCATE
MC_RECEIVE_AND_WAIT
MC_SEND_DATA
(type=AP_SEND_DATA_DEALLOC_SYNC_LEVEL)
MC_RECEIVE_AND_WAIT
(primary_rc=AP_OK)
(rtn_status=AP_YES)
(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, in base al quale non viene eseguita l'elaborazione della conferma.

  • AP_CONFIRM_SYNC_LEVEL, con cui i provider di servizi di transazione possono richiedere la conferma della ricezione dei dati e rispondere alle richieste di conferma dei dati.

  • AP_SYNCPT, in cui i criteri di transazione operano con il supporto del livello di punto di sincronizzazione 2 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:

  • Scarica il buffer di invio dell'lu locale e invia tutti i dati contenuti nel buffer al tp del partner.

  • Invia una richiesta di conferma che il tp del partner riceve 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.

  • Elaborazione futura prevista 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 conversazione

MC_SEND_DATA invia una richiesta di conferma con i dati quando vengono soddisfatte tutte le condizioni seguenti:

  • 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, a indicare che è necessaria una conferma della ricezione dei dati prima che APPC dealloca la conversazione. Il tp locale attende questa conferma fino a quando il partner TP non MC_CONFIRMED.