Socket processing for transactions
For a transaction on either a transaction socket or persistent socket, the client application must always issue a TCP/IP READ following all TCP/IP SENDs.
The exceptions are for a TCP/IP SEND of SENDONLY or a TCP/IP SEND of an ACK with IRM_TIMER set to NO_WAIT (X'E9' char Z), which is issued in response to a READ of a RESUME_TPIPE single request.
The following scenarios describe transactions on a transaction socket. For transactions on a persistent socket, the process is the same as transactions on a transaction socket. However, the client application and IMS Connect do not disconnect. Also, the client application will receive a return code of X'28' if there is a timeout. The return code states a disconnect is not required.
For a Commit mode 0, Synch Level Confirm, non-conversational transaction on a transaction socket, the following scenario occurs:
- The client application issues a SEND to send the transaction data to IMS Connect.
- IMS Connect returns the output to the client application.
- The client application receives the output, sends an ACK, and must issue a READ to receive the next output or the timeout notification.
- IMS Connect issues a timeout notification with the return code of either X'20' or X'24' for a transaction socket, or an X'28' for a persistent socket. IMS Connect will disconnect the socket for the X'20' and X'24' return codes, and will keep the connection for the X'28' return code.
- The client application issues a disconnect for return codes X'20' and X'24'. The client can issue a disconnect for return code X'28' or send in the next input.
For a CM1, Synch Level Confirm, non-conversational transaction on a transaction socket, the following scenario occurs:
- The client application issues a SEND of the transaction data to IMS Connect.
- IMS Connect returns the output to the client application.
- The client application receives the output, sends an ACK or NAK, and issues a READ.
- After an ACK is sent, the client receives one of the following
responses:
- Deallocate commit if the IMS transaction completes successfully.
- A DFS message if the IMS transaction failed.
- A timeout notification with a return code of X'20' or X'24' for a transaction socket or a return code of X'28' for a persistent socket. The client application is required to issue a disconnect for return codes X'20' and X'24'.
- The client application issues a disconnect.
For a CM1, Synch Level Confirm, conversational transaction on a transaction socket, the following scenario occurs:
- The client application issues a SEND to send the transaction data to IMS Connect.
- IMS Connect returns the output to the client application.
- The client application receives the output, sends an ACK, and issues the next input. The client continues SEND, READ, ACK until the transaction is complete.
- IMS Connect issues an RSM deallocate commit, deallocate abort, or a timeout notification. The timeout notification returns either X'20' or X'24', which indicates that IMS Connect will disconnect.
- The client application issues a disconnect.