[z/OS]

Punti di sincronizzazione nelle applicazioni IMS

In un'applicazione IMS , si stabilisce un punto di sincronizzazione utilizzando chiamate IMS come GU (get unique) a IOPCB e CHKP (checkpoint).

Per annullare tutte le modifiche dal punto di controllo precedente, è possibile utilizzare la chiamata IMS ROLB (rollback). Per ulteriori informazioni, vedere Chiamata ROLB nelIMS documentazione.

Il gestore code è un partecipante in un protocollo di commit a due fasi; il gestore del punto di sincronizzazione IMS è il coordinatore.

Tutti gli handle aperti vengono chiusi dall'adattatore IMS in un punto di sincronizzazione (tranne in un ambiente BMP batch o non basato su messaggi). Ciò è dovuto al fatto che un utente diverso potrebbe avviare l'unità di lavoro successiva e il controllo di sicurezza di IBM® MQ viene eseguito quando vengono effettuate le chiamate MQCONN, MQCONNX e MQOPEN, non quando vengono effettuate le chiamate MQPUT o MQGET.

Tuttavia, in un ambiente WFI (Wait - for - Input) o PWFI (pseudo Wait - for - Input) IMS non notifica IBM MQ di chiudere gli handle fino a quando non arriva il successivo messaggio o viene restituito un codice di stato QC all'applicazione. Se l'applicazione è in attesa nella regione IMS e uno di questi handle appartiene a code attivate, l'attivazione non si verificherà perché le code sono aperte. Per questo motivo, le applicazioni in esecuzione in un ambiente WFI o PWFI devono esplicitamente eseguire MQCLOSE che la coda gestisce prima di eseguire il GU all'IOPCB per il messaggio successivo.

Se un'applicazione IMS (BMP o MPP) emette la chiamata MQDISC, le code aperte vengono chiuse ma non viene utilizzato alcun punto di sincronizzazione implicito. Se l'applicazione termina normalmente, tutte le code aperte vengono chiuse e si verifica un commit implicito. Se l'applicazione termina in modo anomalo, le code aperte vengono chiuse e si verifica un backout implicito.