When your Java™ application interacts with IMS it must provide a configured IMSInteractionSpec object. The values of the properties of the IMSInteractionSpec object describe the interaction with IMS. Values for the properties of IMSInteractionSpec can be provided directly via set methods by an application that uses the Common Client Interface, or they can be provided to a wizard of an IDE that generates code for the application. Some of the properties are input only properties, some are input and output properties, and some are output only properties. Output only properties are interrogated by the Java application (also called application component) to determine additional information about the interaction.
The following list describes all the properties of IMSInteractionSpec:
Value | Named constant in IMSInteractionSpecProperties | Description |
---|---|---|
1 | IMS_REQUEST_TYPE_IMS_ |
The request is an IMS transaction. Normal transaction output returned by IMS is
used to populate the application's output message. If IMS returns a "DFS™" message, the IMS resource adapter throws an IMSDFSMessageException
containing the "DFS" message. This value for imsRequestType is used for applications that are not generated using WebSphere® Studio MFS support. |
2 | IMS_REQUEST_TYPE_IMS_COMMAND | The request is an IMS command. Command output returned by IMS, including
"DFS"
messages, is used to populate the application's output message. The IMSDFSMessageException
is not thrown. This value for imsRequestType is used for applications that submit IMS commands. |
3 | IMS_REQUEST_TYPE_MFS_ |
This value for imsRequestType is reserved for applications that are
generated using WebSphere Studio
MFS support. Normal transaction output returned by IMS, as well as "DFS" messages, are used to populate the application's output message. The IMSDFSMessageException is not thrown. |
Value | Named constant in IMSInteractionSpecProperties | Description |
---|---|---|
0 | SYNC_SEND | The IMS TM resource adapter sends the client request to IMS through IMS Connect and does not expect a response from IMS. With a SYNC_SEND interaction, the client does not need to synchronously receive a response from IMS. SYNC_SEND is supported on both shareable and dedicated persistent socket connections and is only allowed with commitMode 0 interactions. If the interactionVerb is set to SYNC_SEND, execution timeout and socket timeout values are ignored. Note: imsRequest type 2 is not allowed with SYNC_SEND and will generate an exception. |
1 | SYNC_SEND_RECEIVE | The execution of an IMS Interaction sends a request to IMS and receives a response synchronously. A typical SYNC_SEND_RECEIVE interaction is the running of a non-conversational IMS transaction in which an input record (the IMS transaction input message) is sent to IMS and an output record (the IMS transaction output message) is returned by IMS. SYNC_SEND_RECEIVE interactions are also used for the iterations of a conversational IMS transaction. A conversational transaction requires commitMode 1. A non-conversational transaction can run using either commitMode 1 or commitMode 0. If commitMode 0 is used on a dedicated persistent socket, a value for the clientID property of IMSConnectionSpec must be provided. If commitMode 0 is used on a shareable persistent socket, a value for the clientID property of IMSConnectionSpec must not be provided. |
3 | SYNC_END_CONVERSATION | If the application executes an interaction with interactionVerb set
to SYNC_END_CONVERSATION, the IMS TM resource adapter sends a message to
force the end of an IMS conversational transaction. The IMSInteractionSpec property, commitMode, and the IMSConnectionSpec property, clientID, do not apply when SYNC_END_CONVERSATION is provided for interactionVerb. |
4 | SYNC_RECEIVE_ASYNCOUTPUT | interactionVerb SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT is valid on
both shareable persistent and dedicated persistent socket connections. SYNC_RECEIVE_ASYNCOUTPUT
is used to retrieve asynchronous output that was not delivered. When SYNC_RECEIVE_ASYNCOUTPUT
is used on a dedicated persistent socket, a value must be provided for the
clientID property of IMSConnectionSpec. A SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT interaction on a shareable persistent socket connection must be in the same application as the original SYNC_SEND or SYNC_SEND_RECEIVE interaction and must use the same shareable persistent connection. This primarily occurs following execution timeout. With this type of interaction, the Java client can only receive a single message. If there are no messages in the IMS OTMA Asynchronous Queue for the clientID when the request is made, no further attempts are made to retreive the message. No message is returned and a timeout will occur after the length of time specified in the executionTimeout property of the SYNC_RECEIVE_ASYNCOUTPUT interaction. |
5 | SYNC_RECEIVE_ASYNCOUTPUT_ |
interactionVerb SYNC_RECEIVE_ASYNCOUTPUT_ A
SYNC_RECEIVE_ASYNCOUTPUT_ With this type of interaction, the Java client
can only receive one single message. If there are no messages in the IMS OTMA Asynchronous
Queue for the clientID when the request is made, no further attempts will
be made to retrieve the message. No message will be returned and a timeout
will occur after the length of time specified in the executionTimeout property
of the
SYNC_RECEIVE_ASYNCOUTPUT_ Note: The interactionVerbs,
SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT and
SYNC_RECEIVE_ASYNCOUTPUT_ SYNC_RECEIVE_ASYNCOUTPUT_ |
6 | SYNC_RECEIVE_ASYNCOUTPUT_ |
interactionVerb SYNC_RECEIVE_ASYNCOUTPUT_ A
SYNC_RECEIVE_ASYNCOUTPUT_ With this type of interaction, the Java client
can only receive one single message. If there are no messages in the IMS OTMA Asynchronous
Queue for the clientID when the request is made, IMS Connect waits for OTMA to return a message. IMS Connect
waits the length of time specified in the executionTimeout property of the
SYNC_RECEIVE_ASYNCOUTPUT_ |
The J2EE Connection Architecture (JCA) values SYNC_RECEIVE (2) is not currently supported.
The value of this property can be set if the client application wants to provide an LTERM override name. This name will be in the IMS application program's I/O PCB, with the intent that the IMS application will make logic decisions based on this override value.
The value of this property can be set if the client application wants to provide an LTERM override name. This name will be in the IMS application program's I/O PCB, with the intent that the IMS application will make logic decisions based on this override value.
On input, typically the value of the mapName property is the name of an MFS Message Output Descriptor, or "MOD". The MOD name will be provided to the IMS application program in the I/O PCB.
On output, the value of the mapName property is the name of an MFS Message Output Descriptor, or "MOD". This is the MOD name that the IMS application program specified when inserting the transaction output message to the I/O PCB.
Note: The mapName field should not be used by Java applications that use an enterprise service whose input and output messages are generated by WebSphere Studio MFS support.
On input, typically the value of the mapName property is the name of an MFS Message Output Descriptor, or "MOD". The MOD name will be provided to the IMS application program in the I/O PCB.
On output, the value of the mapName property is the name of an MFS Message Output Descriptor, or "MOD". This is the MOD name that the IMS application program specified when inserting the transaction output message to the I/O PCB.
The mapName field should not be used by Java applications that use an enterprise service whose input and output messages are generated by WebSphere Studio MFS support.
This property is only valid for interactions on shareable persistent socket connections that use IMS interaction verb SYNC_SEND_RECEIVE. It is not valid for any interactions on dedicated persistent socket connections. It applies to commit mode 0 interactions. It does not apply to commit mode 1 interactions. However, if a commit mode 1 interaction executes a program-to-program switch, the spawned program will run commit mode 0 and therefore the property will apply.
This property is only valid for interactions on shareable persistent socket connections that use IMS interaction verb SYNC_SEND_RECEIVE. It is not valid for any interactions on dedicated persistent socket connections. It applies to commit mode 0 interactions. It does not apply to commit mode 1 interactions. However, if a commit mode 1 interaction executes a program-to-program switch, the spawned program will run commit mode 0 and therefore the property will apply. This property determines if undelivered output is to be rerouted to a named destination specified in the reRouteName field. If reRoute is TRUE, the asynchronous output is not queued to the TPIPE of the generated clientID. Instead, the asynchronous output is queued to the destination specified in the reRouteName field. The default value for reRoute is FALSE.
If both reRoute and purgeAsyncOutput are set to TRUE, an exception is thrown.
The property, reRouteName, is only valid for SYNC_SEND_RECEIVE interactions on shareable persistent socket connections. It is not valid for any interactions on dedicated persistent socket connections.