Modello di programmazione invio/ricezione

Questo modello di programmazione consente di eseguire una transazione in modalità risposta IMS.

Modello di elaborazione del socket persistente condivisibile

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.

Le interazioni del socket persistente condivisibile non possono essere utilizzate per le interazioni commit 1 e commit 0. I seguenti scenari descrivono l'interazione SYNC_SEND_RECEIVE su una connessione del socket persistente condivisibile durante la normale elaborazione, durante l'elaborazione dell'errore e durante il timeout di esecuzione.
  • Scenario di elaborazione normale

    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.

  • Scenario di elaborazione errore
    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, un'eccezione indica che il messaggio di output non può essere distribuito all'applicazione client. Tuttavia, è possibile recuperare i messaggi di output non distribuiti delle eccezioni per le interazioni in modalità 0 su connessioni del socket persistente condivisibile, se l'interazione SYNC_SEND_RECEIVE specifica che l'output non distribuito deve essere reindirizzato ad una specifica destinazione. Per reindirizzare un messaggio di output non distribuito ad una specifica destinazione, specificare le seguenti proprietà aggiuntive nell'oggetto IMSInteractionSpec passato sull'interazione SYNC_SEND_RECEIVE:
    • Impostare la proprietà purgeAsyncOutput su FALSE, in modo che l'output non distribuito non venga eliminato
    • Impostare la proprietà reRoute su TRUE e specificare la destinazione di reindirizzamento nella proprietà RouteName
    Per recuperare l'output non distribuito da una destinazione di reindirizzamento, un'applicazione client separata invia un'interazione SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT o SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT su una connessione del socket persistente dedicato fornendo la destinazione di reindirizzamento come l'ID client dell'interazione.
    Nota: Il valore predefinito della proprietà purgeAsyncOutput è TRUE.
    Quando purgeAsyncOutput è TRUE, vengono eliminati i seguenti messaggi di output:
    • Messaggio di output non distribuito inserito su PCB I/O dal programma applicativo IMS principale.
    • Messaggi di output inseriti su PBC I/O da programmi applicativi IMS secondari richiamati da un passaggio da programma a programma.
    Quando purgeAsyncOutput viene impostato su FALSE, specificare la destinazione reroute.
  • Scenario ExecutionTimeout
    Se si verifica un timeout di esecuzione, la connessione del socket resta aperta ma il messaggio di output non viene distribuito all'applicazione client. Tuttavia, dopo l'eccezione del timeout di esecuzione, è possibile recuperare i messaggi di output non distribuiti per le interazioni in modalità 0 su connessioni del socket persistente condivisibile, in uno dei seguenti due modi:
    • La stessa applicazione client che ha inviato l'interazione SYNC_SEND_RECEIVE può inviare un'interazione SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT o SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT.
    • Il messaggio di output non distribuito può essere reindirizzato su una destinazione specifica, come descritto nello scenario di elaborazione dell'errore descritto in precedenza.

    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.

Modello di elaborazione del socket persistente dedicato

Le interazioni del socket persistente dedicato non possono essere utilizzate per le interazioni commit 0. I seguenti scenari descrivono l'interazione SYNC_SEND_RECEIVE in modalità 0 su una connessione del socket persistente dedicato durante la normale elaborazione, durante l'elaborazione dell'errore e durante il timeout di esecuzione.
  • Scenario di elaborazione normale

    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.

  • Scenario di elaborazione errore

    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.

  • Scenario ExecutionTimeout

    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.


Feedback