Questo modello di programmazione consente di eseguire una transazione in modalità risposta IMS.
Per eseguire una transazione in IMS, l'applicazione Java esegue un'interazione SYNC_SEND_RECEIVE. L'applicazione fornisce un valore di SYNC_SEND_RECEIVE per la proprietà interactionVerb ed un valore pari a 0 o a 1 per la proprietà commitMode dell'oggetto IMSInteractionSpec utilizzato dal metodo di esecuzione. Tuttavia, l'elaborazione dell'interazione SYNC_SEND_RECEIVE è diversa per le connessioni del socket persistente dedicato e quello persistente condivisibile.
L'adattatore di risorse IMS, con il server di applicazioni, ottiene una connessione disponibile dal pool di connessioni o ne crea una nuova. L'adattatore di risorse IMS, poiché parte dell'inizializzazione di una nuova connessione genera un ID client per la connessione. L'ID client generato identifica la connessione del socket e, nel caso di interazioni in modalità commit 0, TPIPE e coda in attesa asincrona OTMA associata.
L'adattatore di risorse IMS garantisce che un socket sia associato alla connessione ed invia la richiesta con dati di input a IMS Connect mediante quel socket. IMS Connect, quindi, invia il messaggio a IMS, dove IMS esegue la transazione e restituisce il messaggio di output.
Per le interazioni in modalità 0, alla ricezione del messaggio di output, l'adattatore di risorse IMS TM invia internamente un messaggio ACK a IMS che segnala a IMS di eliminare l'output dalla coda IMS. Quando l'applicazione client chiude la connessione o l'applicazione termina, la connessione viene restituita al pool di connessioni per essere riutilizzata da altre interazioni in modalità commit 0 e commit 1.
Quando l'applicazione client chiude la connessione o l'applicazione termina, la connessione viene restituita al pool di connessioni per essere riutilizzata da altre interazioni in modalità commit 0 e commit 1.
In circostanze normali, quando si esegue un'interazione SYNC_SEND_RECEIVE in modalità 0 da parte di un'applicazione client, il server delle applicazioni restituisce una connessione esistente con l'ID client specificato dall'utente oppure crea una nuova connessione con l'ID cliente specificato dall'utente. L'ID client specificato dall'utente identifica la connessione del socket e TPIPE e coda in attesa asincrona OTMA associata.
L'adattatore di risorse IMS TM garantisce che un socket sia associato alla connessione ed invia la richiesta con dati di input a IMS Connect mediante quel socket. IMS Connect, quindi, invia il messaggio a IMS, dove IMS esegue la transazione e restituisce il messaggio di output. Alla ricezione del messaggio di output, l'adattatore di risorse IMS TM invia internamente un ACK a IMS che segnala di eliminare l'output dalla coda IMS. Quando la connessione viene chiusa o l'applicazione terminata, la connessione viene restituita al pool di connessioni per essere riutilizzata da un'altra applicazione che sta eseguendo un'interazione in modalità commit 0 con lo stesso clientID specificato dall'utente.
Tutti gli errori risultano in un'eccezione della risorsa generata per l'applicazione client. Inoltre, alcuni errori provocano la disconnessione del socket da IMS Connect. Nel caso di interazioni in modalità commit 0, il messaggio di output non può essere distribuito all'applicazione client. L'output non distribuito viene accodato a TPIPE associato al clientID specificato dall'utente.
Le proprietà purgeAsyncOutput e reRoute non sono applicabili ai socket persistenti dedicati. Non è possibile eliminare o reindirizzare messaggi di output su un socket persistente dedicato.
Se si verifica un timeout di esecuzione, il socket resta aperto e l'output dell'interazione in modalità 0 viene accodato a TPIPE associato al clientID specificato dall'utente per un recupero in futuro. Quando la connessione viene chiusa o l'applicazione terminata, l'oggetto IMSManagerConnection viene restituito al pool di connessioni per essere riutilizzato da un'altra applicazione che sta eseguendo un'interazione in modalità commit 0 con lo stesso clientID specificato dall'utente.