Configurazione della proprietà IMSInteractionSpec

Fornire un oggetto IMSInteractionSpec configurato per interagire con IMS.

Quando l'applicazione Java interagisce con IMS, è necessario fornire un oggetto IMSInteractionSpec configurato. I valori delle proprietà dell'oggetto IMSInteractionSpec descrivono l'interazione con IMS. I valori per le le proprietà di IMSInteractionSpec possono essere specificati direttamente mediante metodi impostati da un'applicazione che utilizza CCI oppure forniti da una procedura guidata di un IDE che genera codice per l'applicazione. Alcune proprietà sono proprietà solo di input, alcune sono di input e di output ed altre sono solo di output. Le proprietà solo di output vengono interrogate dall'applicazione Java (anche definita componente dell'applicazione) per stabilire informazioni aggiuntive sull'interazione.

Di seguito è riportato un elenco che descrive tutte le proprietà di IMSInteractionSpec:

asyncOutputAvailable
Si tratta di una proprietà solo di output. Può essere utilizzata da un'applicazione Java per stabilire se c'è un output accodato per TPIPE associato alla connessione utilizzata per un'interazione commitMode 0. Per le connessioni del socket persistente dedicato, il nome del TPIPE è il valore nella proprietà clientID di IMSConnectionSpec. Nel caso di connessioni del socket persistente condivisibile, il nome di TPIPE viene generato da IMS Connector per Java. Il valore di asyncOutputAvailable è true, se ci sono messaggi nella coda. La proprietà asyncOutputAvailable non è impostata sull'input dal componente dell'applicazione. Nota: Se l'applicazione Java utilizza questa proprietà, è necessario esporla come proprietà di output di IMSInteractionSpec.
convEnded
Si tratta di una proprietà solo di output. Può essere utilizzata da un'applicazione Java per stabilire se la conversazione è terminata (true). La proprietà convEnded non è impostata sull'input dal componente dell'applicazione. Nota: Se l'applicazione Java utilizza questa proprietà, è necessario esporla come proprietà di output di IMSInteractionSpec.
commitMode
Utilizzata dall'adattatore di risorse IMS TM per indicare il tipo di elaborazione in modalità commit da eseguire per una transazione IMS. Per ulteriori informazioni, vedere Panoramica sull'elaborazione in modalità commit. La proprietà commitMode può essere impostata su 0 o su 1 quando interactionVerb è impostato su SYNC_SEND_RECEIVE. Quando interactionVerb è impostato su SYNC_RECEIVE_ASYNCOUTPUT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT o SYNC_SEND, IMS Connector per Java utilizza commitMode 0. commitMode 1 viene richiesto quando interactionVerb è impostato su SYNC_END_CONVERSATION.
Se commitMode è 0 e si utilizza una connessione del socket persistente condivisibile per l'interazione, non specificare clientID. Se si specifica commitMode 0 per un'interazione su un socket persistente condivisibile, il messaggio di output proveniente da una transazione può essere eliminato o reindirizzato. Anche l'output secondario non distribuito da programma a programma può essere eliminato o reindirizzato.
Se viene utilizzata una connessione del socket persistente dedicato per un'interazione, commitMode deve essere 0 e la proprietà clientID di IMSConnectionSpec utilizzata per la connessione deve essere specificata. Se viene utilizzato un socket persistente dedicato per l'interazione commitMode 0, i messaggi di output non distribuito vengono sempre recuperati e non possono essere eliminati o reindirizzati.
socketTimeout
La quantità massima di tempo in cui IMS Connector per Java attenderà una risposta da IMS Connect prima di disconnettere il socket e di restituire un'eccezione all'applicazione client. Il valore socketTimeout è espresso in millisecondi. Per utilizzare il timeout del socket, il valore deve essere maggiore di zero. Se il timeout del socket non viene specificato per un'interazione oppure viene fornito un valore di zero millisecondi, ciò significa che non c'è alcun timeout del socket o che la connessione attenderà in modo indefinito. Per ulteriori informazioni, vedere Timeout del socket e Impostazione dei valori di timeout del socket.
executionTimeout
La quantità massima di tempo consentito a IMS Connect per inviare un messaggio a IMS e ricevere una risposta. Il valore di timeout di esecuzione è rappresentato in millisecondi e deve essere un numero intero decimale pari a -1 o compreso nell'intervallo tra 1 e 3.600.000, in modo inclusivo. In altre parole, il valore executionTimeout deve essere maggiore di zero e minore o uguale a un'ora. Se si imposta per questa proprietà un valore di -1, l'interazione verrà eseguita senza un limite di tempo. Per ulteriori informazioni, vedere Timeout di esecuzione, Impostazione dei valori di timeout di esecuzione e Valori di timeout di esecuzione validi.
imsRequestType
Indica il tipo di richiesta IMS e stabilisce come l'output di questa richiesta venga gestito dall'adattatore di risorse IMS. I valori interi sono:
Valore Denominato costante in IMSInteractionSpecProperties Descrizione
1

IMS_REQUEST_TYPE_IMS_
TRANSACTION

La richiesta è una transazione IMS. Un normale output di transazione restituito da IMS viene utilizzato per popolare il messaggio di output dell'applicazione. Se IMS restituisce un messaggio "DFS", l'adattatore di risorse IMS genera IMSDFSMessageException contenente il messaggio "DFS".

Questo valore per imsRequestType viene utilizzato per le applicazioni che non sono generate mediante WebSphere Studio MFS.

2 IMS_REQUEST_TYPE_IMS_COMMAND La richiesta è un comando IMS. Un normale output di comando restituito da IMS, inclusi i messaggi "DFS" viene utilizzato per popolare il messaggio di output dell'applicazione. Non viene generata IMSDFSMessageException.

Questo valore per imsRequestType viene utilizzato per le applicazioni che inviano comandi IMS.

3

IMS_REQUEST_TYPE_MFS_
TRANSACTION

Questo valore per imsRequestType viene utilizzato per le applicazioni che sono generate mediante WebSphere Studio MFS.

Un normale output di transazione restituito da IMS, nonché i messaggi "DFS", viene utilizzato per popolare il messaggio di output dell'applicazione. Non viene generata IMSDFSMessageException.

interactionVerb
La modalità di interazione tra l'applicazione Java e IMS. I valori attualmente supportati dall'adattatore di risorse IMS TM sono:
Valore Denominato costante in IMSInteractionSpecProperties Descrizione
0 SYNC_SEND L'adattatore di risorse IMS TM invia la richiesta client a IMS tramite IMS Connect e non prevede una risposta da IMS. Con un'interazione SYNC_SEND, il client non necessita di ricevere sincronicamente una risposta da IMS. SYNC_SEND è supportato su entrambi i socket, quello persistente condivisibile e quello persistente dedicato ed è consentito solo con interazioni commitMode 0. Se interactionVerb è impostato su SYNC_SEND, i valori di timeout di esecuzione e quelli di timeout del socket vengono ignorati. Nota: imsRequest tipo 2 non è consentito con SYNC_SEND e si genererà un'eccezione.
1 SYNC_SEND_RECEIVE L'esecuzione di un'interazione IMS invia una richiesta a IMS e riceve sincronicamente una risposta. Un'interazione SYNC_SEND_RECEIVE tipica è l'esecuzione di un'interazione IMS non interattiva in cui un record di input (il messaggio di input della transazione IMS) viene inviato a IMS e quello di output (il messaggio di output della transazione IMS) viene restituito da IMS. Le interazioni SYNC_SEND_RECEIVE vengono anche utilizzate per le interazioni di una transazione IMS interattiva. Una transazione interattiva richiede commitMode 1. Una transazione non interattiva può essere eseguita sia mediante commitMode 1 che mediante commitMode 0. Se commitMode 0 viene utilizzato su un socket persistente dedicato, fornire un valore della proprietà clientID di IMSConnectionSpec. Se commitMode 0 viene utilizzato su un socket persistente condivisibile, non fornire un valore per la proprietà clientID di IMSConnectionSpec.
3 SYNC_END_CONVERSATION Se l'applicazione esegue un'interazione con interactionVerb impostato su SYNC_END_CONVERSATION, l'adattatore di risorse IMS TM invia un messaggio per forzare la fine di una transazione interattiva IMS.

La proprietà IMSInteractionSpec, commitMode, e la proprietà IMSConnectionSpec, clientID, non vengono applicate quando viene specificato SYNC_END_CONVERSATION per interactionVerb.

4 SYNC_RECEIVE_ASYNCOUTPUT interactionVerb SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT è valido sulle connessioni del socket persistente dedicato e su quelle del socket persistente condivisibile. SYNC_RECEIVE_ASYNCOUTPUT viene utilizzato per recuperare output asincrono non distribuito. Se SYNC_RECEIVE_ASYNCOUTPUT viene utilizzato su un socket persistente dedicato, fornire un valore per la proprietà clientID di IMSConnectionSpec.

L'interazione SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT su una connessione del socket persistente condivisibile deve essere nella stessa applicazione dell'interazione SYNC_SEND o SYNC_SEND_RECEIVE originale e deve essere utilizzata la stessa connessione del socket persistente condivisibile. Ciò si verifica principalmente dopo il timeout di esecuzione.

Con questo tipo di interazione, il client Java può ricevere un solo messaggio. Se non ci sono messaggi nella coda in attesa asincrona IMS OTMA per clientID quando viene effettuata la richiesta, non viene fatto più alcun tentativo per recuperare il messaggio. Nessun messaggio viene restituito e si verificherà un timeout dopo il tempo specificato nella proprietà executionTimeout dell'interazione SYNC_RECEIVE_ASYNCOUTPUT.

5

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

interactionVerb

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

è valido sulle connessioni del socket persistente dedicato e su quelle del socket persistente condivisibile. Viene utilizzato per recuperare output asincrono.
Un'interazione

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

su una connessione del socket persistente condivisibile deve essere nella stessa applicazione dell'interazione SYNC_SEND o SYNC_SEND_RECEIVE originale e deve utilizzare la stessa connessione del socket persistente condivisibile. Ciò si verifica principalmente dopo il timeout di esecuzione.
Con questo tipo di interazione, il client Java può ricevere un solo messaggio. Se non ci sono messaggi nella coda in attesa asincrona IMS OTMA per clientID quando viene effettuata la richiesta, non viene fatto più alcun tentativo per recuperare il messaggio. Nessun messaggio viene restituito e si verificherà un timeout dopo il tempo specificato nella proprietà executionTimeout dell'interazione

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

.
Nota: interactionVerb, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT e

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

, eseguono la stessa funzione. Si consiglia, tuttavia, di utilizzare

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_NOWAIT

6

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

interactionVerb

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

viene utilizzato per recuperare output asincrono. É valido sulle connessioni del socket persistente dedicato e su quelle del socket persistente condivisibile.
Un'interazione

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

su una connessione del socket persistente condivisibile deve essere nella stessa applicazione dell'interazione SYNC_SEND o SYNC_SEND_RECEIVE originale e deve utilizzare la stessa connessione del socket persistente condivisibile. Ciò si verifica principalmente dopo il timeout di esecuzione.
Con questo tipo di interazione, il client Java può ricevere un solo messaggio. Se non ci sono messaggi nella coda in attesa asincrona IMS OTMA per clientID quando viene effettuata la richiesta, IMS Connect attende che OTMA restituisca un messaggio. IMS Connect attende il tempo specificato nella proprietà executionTimeout dell'interazione

SYNC_RECEIVE_ASYNCOUTPUT_
SINGLE_WAIT

prima di restituire un'eccezione.

I valori J2EE Connection Architecture (JCA) SYNC_RECEIVE (2) non sono attualmente supportati.

ltermName
Il nome LTERM utilizzato per sostituire il valore nel campo LTERM del PCB I/O del programma dell'applicazione IMS. Per una descrizione su come utilizzare la sovrascrittura LTERM, vedere IMS Connect User's Guide and Reference (SC27-0946-23).

Il valore di questa proprietà può essere impostato se l'applicazione client desidera fornire un nome per la sovrascrittura LTERM. Questo nome sarà nel PCB I/O del programma dell'applicazione IMS con l'intento che l'applicazione IMS prenderà decisioni logiche in base al valore di questa sovrascrittura.

Il valore di questa proprietà può essere impostato se l'applicazione client desidera fornire un nome per la sovrascrittura LTERM. Questo nome sarà nel PCB I/O del programma dell'applicazione IMS con l'intento che l'applicazione IMS prenderà decisioni logiche in base al valore di questa sovrascrittura.

mapName
Il campo mapName, di solito, contiene il nome di un blocco di controllo MFS (Message Format Service). MFS è il componente di IMS che esegue la formattazione in linea dei messaggi di input e di output della transazione. Poiché IMS Connect utilizza IMS OTMA per accedere a IMS, la formattazione in linea MFS viene ignorata. Il nome mapName, tuttavia, può essere ancora utilizzato da un'applicazione Java per immettere il nome di un blocco di controllo MFS in un programma dell'applicazione IMS o per recuperare il nome di un blocco di controllo MFS fornito da un programma dell'applicazione IMS.

Sull'input, di solito, il valore della proprietà mapName corrisponde al nome di un descrittore di output del messaggio MFS o "MOD". Il nome MOD verrà fornito nel programma dell'applicazione IMS nel PCB I/O.

Sull'output, il valore della proprietà mapName corrisponde al nome di un descrittore di output del messaggio MFS o "MOD". Si tratta del nome MOD che il programma dell'applicazione IMS ha specificato quando si inserisce il messaggio di output della transazione nel PCB I/O.

Nota: Il campo mapName non deve essere utilizzato dall'applicazione Java che utilizza un sevizio aziendale i cui messaggi di input e output vengono generati da WebSphere Studio MFS.

Sull'input, di solito, il valore della proprietà mapName corrisponde al nome di un descrittore di output del messaggio MFS o "MOD". Il nome MOD verrà fornito nel programma dell'applicazione IMS nel PCB I/O.

Sull'output, il valore della proprietà mapName corrisponde al nome di un descrittore di output del messaggio MFS o "MOD". Si tratta del nome MOD che il programma dell'applicazione IMS ha specificato quando si inserisce il messaggio di output della transazione nel PCB I/O.

Il campo mapName non deve essere utilizzato dall'applicazione Java che utilizza un sevizio aziendale i cui messaggi di input e output vengono generati da WebSphere Studio MFS.

purgeAsyncOutput
Si tratta di una proprietà di input. Questa proprietà stabilisce se IMS Connect elimina o meno l'output non distribuito.

Questa proprietà è valida per le interazioni su connessioni socket persistente condivisibile che utilizzano l'istruzione di interazione IMS SYNC_SEND_RECEIVE. Non è valida per le interazioni su connessioni del socket persistente dedicato. Si applica alle interazioni in modalità commit 0. Non si applica alle interazioni in modalità commit 1. Se, tuttavia, un'interazione in modalità commit 1 esegue uno scambio programma-programma, il programma prodotto eseguirà la modalità commit 0 e, di conseguenza, verrà applicata la proprietà.

Se la proprietà purgeAsyncOutput non viene specificata su un'interazione SYNC_SEND_RECEIVE su una connessione del socket persistente condivisibile, il valore predefinito è TRUE e i seguenti messaggi di output vengono eliminati:
  • Messaggio di output non distribuito inserito su PCB I/O dal programma applicativo IMS principale.
  • Messaggi di output inseriti su PCB I/O da programmi applicativi IMS secondari richiamati da un passaggio da programma a programma.
reRoute
Si tratta di una proprietà di input.

Questa proprietà è valida per le interazioni su connessioni socket persistente condivisibile che utilizzano l'istruzione di interazione IMS SYNC_SEND_RECEIVE. Non è valida per le interazioni su connessioni del socket persistente dedicato. Si applica alle interazioni in modalità commit 0. Non si applica alle interazioni in modalità commit 1. Se, tuttavia, un'interazione in modalità commit 1 esegue uno scambio programma-programma, il programma prodotto eseguirà la modalità commit 0 e, di conseguenza, verrà applicata la proprietà. Questa proprietà stabilisce se l'output deve essere reindirizzato ad una destinazione specificata denominata specificata nel campo reRouteName. Se reRoute è TRUE, l'output asincrono non viene accodato a TPIPE di clientID generato. Al contrario, l'output asincrono viene accodato alla destinazione specificata nel campo reRouteName. Il valore predefinito per reRoute è FALSE.

Se reRoute e purgeAsyncOutput sono impostati su TRUE, si genera un'eccezione.

reRouteName
Questa proprietà fornisce il nome della destinazione cui viene accodato l'output asincrono. Se reRoute è TRUE, questa proprietà fornisce la destinazione denominata. Se reRoute è FALSE, la proprietà reRouteName viene ignorata.
Se la proprietà reRoute viene impostata su TRUE, e non viene fornito alcun valore reRouteName, il valore per la proprietà reRouteName è:
  1. Il valore specificato nel file di configurazione di IMS Connect.
  2. Se non viene specificato alcun valore nel file di configurazione di IMS Connect, si utilizza il valore "HWS$DEF".
I valori validi per la proprietà reRouteName:
  • Devono essere una stringa da 1 a 8 caratteri alfanumerici (A-Z, 0-9) o speciali (@,#,$).
  • Non devono iniziare con una stringa di caratteri "HWS".
  • Non devono essere un numero di porta IMS Connect.
  • Se vengono fornite lettere minuscole, queste verranno modificate in maiuscole.

Questa proprietà è valida solo per le interazioni SYNC_SEND_RECEIVE su connessioni del socket persistente condivisibile. Non è valida per le interazioni su connessioni del socket persistente dedicato.

syncLevel
Si tratta di una proprietà di input. Si tratta del livello di sincronizzazione dell'interazione tra IMS Connector per Java e IMS OTMA. I valori del livello di sincronizzazione validi sono 0 (NONE) e 1 (CONFIRM). La proprietà syncLevel si applica ai valori SYNC_SEND_RECEIVE e SYNC_SEND della proprietà interactionVerb e viene utilizzata insieme alla proprietà commitMode. Si applica alle applicazioni interattive e non.
Modalità commit 1
Sono validi i livelli 0 e 1. 0 è il valore predefinito. Se, ad esempio, la proprietà interactionVerb è impostata su SYNC_SEND_RECEIVE e la proprietà commitMode su 1, non è necessario impostare la proprietà syncLevel. Se un altro valore oltre a 0 o 1 viene passato al metodo setSyncLevel(int), si genera un'eccezione.  
Modalità commit 0
L'unico valore valido è il livello di sincronizzazione 1. Non è necessario impostare il livello di di sincronizzazione con questa modalità commit. Se un altro valore oltre a 1 viene passato al metodo setSyncLevel(int), si genera un'eccezione.
I programmi attivati da un passaggio programma-programma verranno sempre elaborati come modalità commit 0, senza tener conto del livello di sincronizzazione del programma originale. Per questa ragione, l'output secondario di questi programmi può essere inserito sulla coda di reindirizzamento o eliminato, a seconda dell'impostazione di reRoute e purgeNotDeliverable nell'interazione originale.

Feedback