Condividi tramite


Elaborazione delle conferme (CPI-C)

La sequenza di eventi per l'elaborazione di 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.

    Usando l'elaborazione della conferma, un programma di transazione (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 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 richiamato o il TP richiamabile TP.

Nella tabella seguente vengono illustrati i passaggi coinvolti nell'elaborazione di conferma.

Passaggio Rilasciato dal TP richiamato Rilasciato dal TP richiamabile
1 Initialize_Conversation
2 Set_Sync_Level (sync_level=CM_CONFIRM)
3 Allocare
4 Send_Data
5 Confirm
6 Accept_Conversation
7 Ricezione (data_received= CM_COMPLETE_DATA_RECEIVED) (status_received= CM_CONFIRM_RECEIVED)
8 Confermato
9 (return_code=CM_OK)
10 Send_Data
11 Deallocare
12 Ricevere
13 (status_received= CM_CONFIRM_DEALLOC_RECEIVED)
14 Confermato
15 (return_code=CM_OK)

Definizione del livello di sincronizzazione

La chiamata Set_Sync_Level consente di eseguire l'override del livello di sincronizzazione predefinito della conversazione. Il livello di sincronizzazione è una delle caratteristiche della conversazione. Esistono due possibili livelli di sincronizzazione:

  • CM_CONFIRM, in cui i provider di servizi di sicurezza possono richiedere la conferma della ricezione dei dati e rispondere a tali richieste.

  • CM_NONE, il valore predefinito, in base al quale non si verifica l'elaborazione di conferma.

    La chiamata Initialize_Conversation imposta le caratteristiche predefinite di una conversazione. Esistono diverse chiamate che iniziano con Set_. Queste chiamate consentono di eseguire l'override delle caratteristiche di conversazione predefinite.

Invio di una richiesta di conferma

L'emissione della chiamata Conferma ha due effetti:

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

  • Invia una richiesta di conferma che il TP partner riceve tramite il parametro status_received di una chiamata di ricezione .

    Dopo aver rilasciato Conferma, il TP locale attende la conferma dal partner TP.

Ricezione di una richiesta di conferma

Il parametro status_received della chiamata di ricezione indica qualsiasi azione futura richiesta dal TP locale.

Nell'esempio, la prima ricezione ha un status_received di CM_CONFIRM_RECEIVED , che indica che è necessaria una conferma prima che il partner TP possa continuare.

Risposta a una richiesta di conferma

Il partner TP rilascia la chiamata confermata per confermare la ricezione dei dati. In questo modo il TP locale consente di riprendere l'elaborazione.

Deallocazione della conversazione

Poiché il livello di sincronizzazione della conversazione è impostato su CM_CONFIRM, Deallocate invia una richiesta di conferma con i dati scaricati dal buffer.

Per la seconda chiamata di ricezione , status_received è CM_CONFIRM_DEALLOC_RECEIVED , che indica che il TP partner richiede una conferma, generata dalla chiamata confermata , prima che la conversazione possa essere deallocata.