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.

  1. LU 6.2 program: ALLOC LU=IMS LU name
  2. LU 6.2 program: SEND to local IMS
  3. LU 6.2 program: RECEIVE_AND_WAIT
  4. Local IMS receives the transaction
  5. Transaction is enqueued
  6. Transaction executes (if application fails before reaching commit point, message is discarded)
  7. Message inserted to I/O PCB
  8. Local IMS sends output (Message Control/Error exit routine receives control if LU 6.2 session fails here)
  9. Commit point
  10. 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:

  1. LU 6.2 program: ALLOC LU=IMS LU name
  2. LU 6.2 program: SEND to local IMS
  3. LU 6.2 program: DEALLOCATE
  4. Local IMS receives the transaction
  5. Transaction is enqueued
  6. Transaction executes (if application fails before reaching commit point, message is discarded)
  7. Message inserted to I/O PCB
  8. Commit point
  9. Local IMS: ALLOCATE with TPN=DFSASYNC
  10. Local IMS sends output
  11. Local IMS: DEALLOCATE

The following list shows the flow of a transaction sent from an LU 6.2 synchronous conversation to a remote IMS:

  1. LU 6.2 program: ALLOC LU=IMS LU name
  2. LU 6.2 program: SEND to local IMS
  3. LU 6.2 program: RECEIVE_AND_WAIT
  4. Local IMS receives the transaction
  5. Transaction is enqueued on remote queue and MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
  6. Local IMS sends message across MSC link to remote IMS
  7. Remote IMS receives the transaction
  8. Transaction executes
  9. Output message inserted to I/O PCB
  10. Remote IMS enqueues output message to MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
  11. Commit point
  12. Remote IMS sends output message across MSC link to local IMS
  13. Local IMS receives output message
  14. Local IMS enqueues output message for LU 6.2 program
  15. Local IMS sends output message to LU 6.2 program (Message Control/Error exit routine receives control if LU 6.2 session fails here)
  16. 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:

  1. LU 6.2 program: ALLOC LU=IMS LU name
  2. LU 6.2 program: SEND to local IMS
  3. LU 6.2 program: DEALLOCATE
  4. Local IMS receives the transaction
  5. Transaction is enqueued on remote queue and MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
  6. Local IMS sends message across MSC link to remote IMS
  7. Remote IMS receives the transaction
  8. Remote IMS enqueues the transaction
  9. Transaction executes
  10. Output message inserted to I/O PCB
  11. Remote IMS enqueues output message to MSC link (message is recoverable across MSC link failure after enqueue on MSC link)
  12. Commit point
  13. Remote IMS sends output message across MSC link to local IMS
  14. Local IMS receives output message
  15. Local IMS enqueues output message for LU 6.2 program
  16. Local IMS: ALLOCATE with TPN=DFSASYNC
  17. Local IMS sends output message to LU 6.2 program (Message Control/Error exit routine receives control if LU 6.2 session fails here)
  18. Local IMS: DEALLOCATE