Commit mode and synchronization level definitions

IMS Connect supports the following commit modes and synchronization levels.

Commit mode 0

Commit mode 0 (CM0) is also called commit-then-send. CM0 is supported on both persistent and transaction sockets and supports only synch level CONFIRM.

If your version of IMS Connect supports protocol level X'02', you can set the IRM_F1_NOWAIT flag on inbound CM0 messages. This flag indicates that the client will not wait for the final timeout message from IMS Connect after it acknowledges receipt of the message.

Commit mode 1
Commit mode 1 (CM1) is also called send-then-commit. CM1 is supported on both persistent and transaction sockets and supports synch levels NONE, CONFIRM, and SYNCH.

For CM1 input messages, always specify a timeout value for IMS to wait for the ACK and NAK responses from IMS Connect. Until an ACK or NAK response is received by IMS, the IMS dependent regions remains occupied and continues to hold the necessary database locks. Valid timeout intervals are from 0 to 255 seconds and are specified on the ACKTO parameter of the DATASTORE configuration statement.

You can view the current timeout values by issuing the IMS Connect commands VIEWHWS or VIEWDS, or you can issue the MVS™ command QUERY MEMBER.

Synch Level=NONE
The synchronization level specifies the level of acknowledgment for each transaction. If a transaction is specified with Synch Level=NONE, no acknowledgment is required from the client. The database changes are still committed if the output message is sent to IMS Connect, but not to the client. However, if OTMA is unable to deliver the output message to IMS Connect, the input and output message are discarded, the database changes are backed out, and the IMS application terminates and returns with a 119 ABEND.
Synch Level=CONFIRM
If a transaction is specified with Synch Level=CONFIRM, the client is required to send an acknowledgment to signal to IMS Connect whether the output message was successfully (ACK) or unsuccessfully (NAK) processed by the client.
The processing of CONFIRM is dependent on the type of commit mode that you specify:
  • If Synch Level=CONFIRM is requested with CM0, and the client responds with ACK, IMS dequeues the output message. If the client returns a NAK response, the output message is requeued in IMS for later retrieval by the client.
  • If Synch Level=CONFIRM is requested with commit mode 1, and the client responds with ACK, the database changes are committed. If the client responds with NAK, the database changes are backed out and the output message is discarded by IMS.
Synch Level=SYNCH
If a transaction is specified with Synch Level=SYNCH, two phase commit processing is required. Use Synch Level=SYNCH when multiple participants are involved in sync point processing. Synch Level=SYNCH is managed through z/OS® Resource Recovery Services.