I have an application in the processing of which it stores into an Adabas File and then writes a message to an MQ for further processing. I came to know that Adabas commit ( end transaction) and MQ Commit are mutually exclusive. Similarly a back out transaction on adabas does not necessarily mean a back out of the message written to the queue.
I would like to know why this is the case, if it is true. Why is it not possible to control the commit and roll-back of a message in sync with the commit and roll-back of the adabas database.
The scenario that has caused me a problem is when:
A record is stored on an adabas file A.
The record is then formatted and written to a MQ Queue.
The same record is tried to be updated after written to the queue, but gets an error and the database is rolled back. Even then, the MQ message is committed and is visible to the other application reading from the queue.