Posted: Mon Jun 23, 2003 6:35 am Post subject: MQ Series and CICS
Apprentice
Joined: 02 Apr 2002 Posts: 27
We are using MQ Series as a communications mechanism between a Windows GUI application and a CICS application. All works fairly well. We do have some open issues mostly related to the fact that there is no connection between the client and the CICS transaction. I know this is a popular use for MQ and would like to know how others are dealing with this issue.
We have a LE abend handler for the CICS transaction but have found that it is not always invoked in the event of an abend. We must also take into account the possibility that the CICS region is not available (up) which would cause a problem. The application is currently coded to wait a fixed period of time for a response to arrive. This has become a problem because there is a huge variance in the amount of time the CICS task can take to complete. In some cases the work can take 15 or more minutes to complete.
Is it possible to use a different mechanism to trap an abend in the CICS transaction. It would seem to me that this type of functionality would be available within CICS or mq but I have been unable to find it.
If you get a message within syncpoint and the transactaion abends the message will be rolled back to the MQ queue. When your application restarts and gets the message again it can check the backout count for the message to see if it had previously failed. It can then perform error processing and send a failure response instead of retrying normal processing and possibly getting into an abend loop.
The backout threshold and requeue queue name attributes are provided for an applications use.
To avoid delays caused be a CICS region being unavailable/insufficent capacity you could consider using MQ Shared queues or Cluster queues to share the workload over a number CICS regions and queue managers. _________________ Bob Buxton
Ex-Websphere MQ Development
That's an interesting idea. Unfortunately it presents another issue which it might be possible to work around.
Currently we have two tasks. On which is triggered. We'll call this task "A" This task retrieves the message, validates the userid and password contained within the message. If the credentials are OK it starts another task "B" using the userid contained within the message. Task "B" does all the work using the credentials of the user that signed on to the application. This is the task that I am concerned about abending.
This design allows multiple tasks to be runnig within cics for different users concurrently. We looked at the EXEC CICS SIGNON but it relates only to tasks associated with a terminal.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum