Timeout specifications on input messages
Each and every input message from the IMS Connect client can set a different timeout value in the IRM_TIMER field of the fixed portion of the IMS request message (IRM) header.
Set the IRM_TIMER value to an appropriate wait time for IMS to return data to IMS Connect.
The settings for the IRM_TIMER is enforced as described in the following list:
- If the IRM_TIMER is set at X'00', the following default
values are used:
- The default for all RESUME_TPIPE is two seconds.
- The default for all RESUME_TPIPE non-single ACK is .25 seconds.
- The value of the TIMEOUT parameter in the IMS Connect TCPIP configuration statement for all others.
- X'FF' and X'01' - X'9E' are used only when requested.
- X'E9' (char Z) NO_WAIT means do not wait for any IMS output. NO_WAIT is not valid
on some Client SENDs. Because IMS Connect
does not wait for output from IMS,
on a transaction socket connection, IMS Connect
disconnects the socket; and on a persistent socket connection, IMS Connect requests the next input
from the client rather than disconnect the socket. If NO_WAIT is used,
it is enforced as follows:
- There is a two second delay for:
- RESUME_TPIPE request
- conversational transaction code
- conversational data
- ACK or NAK associated with a conversational transaction
- non-conversational transaction code
- A .25 second delay for each of the following is used:
- an ACK or NAK associated with a non-conversational transaction commit mode one confirm
- an ACK or NAK associated with a RESUME_TPIPE with Asynch output options AUTO or NOAUTO
- an ACK or NAK associated with non-conversational transaction commit mode zero confirm
- NO_WAIT can be used for the following:
- a SENDONLY
- an ACK or NAK associated with RESUME_TPIPE with Asynch output option SINGLE
- an ACK or NAK associated with non-conversational transaction commit mode zero confirm with the IRM NOWAIT flag
- There is a two second delay for:
Misuse of X'E9' can result in one of the following problems:
- The socket disconnects.
- An output message to the client on a transaction socket is lost.
- A hang condition occurs between the client and IMS Connect or IMS Connect and OTMA. For example, the client can be in a READ state waiting for output from IMS Connect while IMS Connect is in a READ state waiting for input from the client and OTMA is in READ state waiting for acknowledgment.
- The deallocate commit or deallocate abort notification for CM1 SynchLevel=Confirm is lost.
- Other unpredictable conditions occur.
To determine the appropriate wait time for IMS to return data to IMS Connect, consider the following guidelines:
- For a client SEND of transaction code and data or data only, the
IRM_TIMER value should be set to reflect the amount of time IMS Connect should wait for the output
from IMS. Recommendation: Do not use a timer value of X'E9' except for messages with the NOWAIT flag set on the IRM.
- If the client application knows that the last message received is the last output message to the client for the transaction, set the IRM_TIMER to X'01' (.01 of a second) for a client SEND of ACK or NAK. The IRM_TIMER of X'01' is the smallest value that can be set for non-RESUME TPIPE ACK messages. However, if the ACK message is associated with an output from a RESUME TPIPE call, do not set the IRM_TIMER value to X'E9' (character Z).
- For a client SEND of a RESUME TPIPE call, the timer value can
be set as follows:
- AUTO option
- X'FF' for dedicated output device, or any X'00' to X'9E' values for non-dedicated output device
- NOAUTO option
- any value other than X'FF' or X'E9'
- SINGLE or SINGLE with WAIT option
- any value other than X'FF' or X'E9'