Recoverability flows of LU 6.2 transactions
This topic contains four lists that show synchronous and asynchronous transaction flows, and shows when the transactions are recoverable, irrecoverable, discardable, or nondiscardable.
The following list shows the flow of a transaction sent from an LU 6.2 synchronous conversation to a local IMS.
- LU 6.2 program: ALLOC LU=IMS LU name
- LU 6.2 program: SEND to local IMS
- LU 6.2 program: RECEIVE_AND_WAIT
- Local IMS receives the transaction
- Transaction is enqueued
- Transaction executes (if application fails before reaching commit point, message is discarded)
- Message inserted to I/O PCB
- Local IMS sends output (Message Control/Error exit routine receives control if LU 6.2 session fails here)
- Commit point
- LU 6.2 program: DEALLOCATE
The following list shows the flow of a transaction sent from an LU 6.2 asynchronous conversation to a local IMS:
- LU 6.2 program: ALLOC LU=IMS LU name
- LU 6.2 program: SEND to local IMS
- LU 6.2 program: DEALLOCATE
- Local IMS receives the transaction
- Transaction is enqueued
- Transaction executes (if application fails before reaching commit point, message is discarded)
- Message inserted to I/O PCB
- Commit point
- Local IMS: ALLOCATE with TPN=DFSASYNC
- Local IMS sends output
- Local IMS: DEALLOCATE
The following list shows the flow of a transaction sent from an LU 6.2 synchronous conversation to a remote IMS:
- LU 6.2 program: ALLOC LU=IMS LU name
- LU 6.2 program: SEND to local IMS
- LU 6.2 program: RECEIVE_AND_WAIT
- Local IMS receives the transaction
- Transaction is enqueued on remote queue and MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
- Local IMS sends message across MSC link to remote IMS
- Remote IMS receives the transaction
- Transaction executes
- Output message inserted to I/O PCB
- Remote IMS enqueues output message to MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
- Commit point
- Remote IMS sends output message across MSC link to local IMS
- Local IMS receives output message
- Local IMS enqueues output message for LU 6.2 program
- Local IMS sends output message to LU 6.2 program (Message Control/Error exit routine receives control if LU 6.2 session fails here)
- LU 6.2 program: DEALLOCATE
The following list shows the flow of a transaction sent from an LU 6.2 asynchronous transaction to a remote IMS:
- LU 6.2 program: ALLOC LU=IMS LU name
- LU 6.2 program: SEND to local IMS
- LU 6.2 program: DEALLOCATE
- Local IMS receives the transaction
- Transaction is enqueued on remote queue and MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
- Local IMS sends message across MSC link to remote IMS
- Remote IMS receives the transaction
- Remote IMS enqueues the transaction
- Transaction executes
- Output message inserted to I/O PCB
- Remote IMS enqueues output message to MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
- Commit point
- Remote IMS sends output message across MSC link to local IMS
- Local IMS receives output message
- Local IMS enqueues output message for LU 6.2 program
- Local IMS: ALLOCATE with TPN=DFSASYNC
- Local IMS sends output message to LU 6.2 program (Message Control/Error exit routine receives control if LU 6.2 session fails here)
- Local IMS: DEALLOCATE