Summary results of IMS transactions and commands
The following figure summarizes the results of IMS transactions that a client submits under various processing conditions using a synchronized tpipe.
The summarization differentiates recoverable sequence numbers of zero and non-zero, and shows the differences between recoverable and unrecoverable transactions for commit modes 0 and 1 for both the zero and non-zero sequence.
In the tables, CM0 indicates a commit-then-send (commit mode 0) transaction and CM1 indicates a send-then-commit (commit mode 1) transaction.
| Recoverable sequence number | CM0 recoverable transaction | CM0 unrecoverable transaction | CM1 recoverable transaction | CM1 unrecoverable transaction |
|---|---|---|---|---|
| 0 (zero) | Client receives ACK message. Output is recoverable, and no input/output recoverable sequence is updated. | Client receives ACK message. Output is not recoverable and no input/output recoverable sequence number is updated. | Client receives NAK message with sense code X'001C'. | Client receives NAK message with sense code X'001C'. |
| Not 0 (zero) | If the recoverable sequence number is valid, client receives ACK message. If it is not valid, client receives NAK message with sense code X'001F'. Transaction and output are recoverable. | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). | Client receives NAK message with sense code X'001C'. | Client receives NAK message with sense code X'001C'. |
The following table summarizes the results of IMS transactions that a client submits under various processing conditions using a nonsynchronized tpipe. The summarization differentiates recoverable sequence numbers of zero and non-zero, and shows the differences between recoverable and unrecoverable transactions for commit modes 0 and 1 for both the zero and non-zero sequence.
| Recoverable sequence number | CM0 recoverable transaction | CM0 unrecoverable transaction | CM1 recoverable transaction | CM1 unrecoverable transaction |
|---|---|---|---|---|
| 0 (zero) | Client receives ACK message. Transaction and output are recoverable. | Client receives ACK message. Transaction and output are not recoverable. | Client receives ACK message. Transaction and output are not recoverable. | Client receives ACK message. Transaction and output are not recoverable. |
| Not 0 (zero) | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). |
The following table summarizes the results of commands that a client issues under various processing conditions using a synchronized tpipe or a nonsynchronized tpipe. The summarization differentiates recoverable sequence numbers of zero and non-zero, and shows the differences between commit modes 0 and 1 for both synchronized and nonsynchronized tpipes.
| Recoverable sequence number | Synchronized tpipe with CM0 | Synchronized tpipe with CM1 | Nonsynchronized tpipe with CM0 | Nonsynchronized tpipe with CM1 |
|---|---|---|---|---|
| 0 (zero) | Client receives ACK message. Command output is recoverable and output recoverable sequence number is updated. | Client receives NAK message with sense code X'001C'. | Client receives ACK message. Output is not recoverable. | Client receives ACK message. Output is not recoverable. |
| Not 0 (zero) | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). | Client receives NAK message with sense code X'001C'. | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). | Client receives NAK message with sense code X'0023'. Client should set recoverable sequence number to 0 (zero). |