Dedicated persistent socket processing model
Dedicated persistent socket connections are connections that can be used only for commit mode 0 interactions.
The following scenarios describe the commit mode 0 SYNC_SEND_RECEIVE interaction on a dedicated persistent socket during normal processing, error processing, and execution timeout.
Normal processing scenario
When a commit mode 0 SYNC_SEND_RECEIVE interaction is executed by a client application, the application server returns an existing connection with the user-specified client ID, or creates a new connection with the user-specified client ID. The user-specified client ID identifies the socket connection and the tpipe that is associated with the OTMA asynchronous hold queue.
The IMS TM resource adapter ensures that a socket is associated with the connection and sends the request with input data to IMS Connect using that socket. IMS Connect then sends the message to IMS, where IMS runs the transaction and returns the output message. When it receives the output message, the IMS TM resource adapter sends an ACK to IMS, which signals IMS to discard the output from the IMS queue. When the connection is closed or the application terminates, the connection is returned to the connection pool for reuse by another application that is running a commit mode 0 interaction with the same user-specified client ID.
Error processing scenario
All errors result in a resource exception being thrown to the client application. In addition, some errors result in the socket being disconnected by IMS Connect. For commit mode 0 interactions, an exception means the output message cannot be delivered to the client application. The undelivered output is queued to the tpipe that is associated with the user-specified client ID.
The properties, purgeAsyncOutput and reRoute, are not applicable to dedicated persistent sockets. You can not purge or reroute undelivered output messages on a dedicated persistent socket.
Execution timeout scenario
If an execution timeout occurs, the socket remains open and the output of the commit mode 0 interaction is queued to the tpipe associated with the user-specified client ID for later retrieval. When the connection is closed or the application terminated, the IMSManagedConnection object is returned to the connection pool for reuse by another application that is running a commit mode 0 interaction with the same user-specified client ID.