Page 1 of 1

CICS program ending up in a loop

PostPosted: Fri Feb 27, 2009 12:32 pm
by mmt_bit
We have a CICS transaction which is triggered by a message in MQ.
The CICS program reads all the messages in the queue until the queue becomes empty. The trigger type defined is 'F'.

But when there is an error encountered in the CICS program, it does a ROLLBACK and thus the message is put back into the Queue.
This message (which caused the error) triggers CICS program again and thus ending up in a loop until it is processed successfully.
Ideally this should not happen. CICS program should not get triggered until a new message comes in.

Please advise.

Re: CICS program ending up in a loop

PostPosted: Sat Feb 28, 2009 1:12 am
by dick scherrer
Hello,

CICS program should not get triggered until a new message comes in
This is a "new message". . .

You might consider capturing the info from the message (so someone could be informed that the message had problems and needed to be corrected/resent - this should be very rare) and deleting the message, rather than the rollback. You would need to ensure that there were no other problems if the code was changed this way.

Re: CICS program ending up in a loop

PostPosted: Mon Mar 02, 2009 8:28 am
by mmt_bit
Thanks for the reply.
The error is not caused because the MQ message is incorrect. The error is because of the unavailability of the DB2 resource.

Note: The EOD (End Of Day) job runs in the midnight. This job uses the same DB2 tables. So the DB2 resource is unavailable until this job is complete.

Regards,
Manmohan

Re: CICS program ending up in a loop

PostPosted: Mon Mar 02, 2009 9:28 am
by dick scherrer
Hello,

You have a scheduling problem rather than a checkpoint/rollback problem. . .

Work with your cics support and/or scheduling people to make the cics transaction unavailable while this eod is running.