Thursday 30 July 2009

Overlapping MQ clusters and WAS

Trying to sort out the MQ and WAS config when using overlapping MQ clusters and explain the changes to someone who does not have English as a first language has been an experience.

So to try and explain, we have 4 WAS servers in a cluster, each with their own qmgr on the LPARs

There are in an MQ cluster along with the qmgrs for 2 Message broker servers. these are in app_clus

The message broker qmgrs are also in a cluster with the backend qmgrs, this is backend_clus.

Within WAS, the application has a couple of queue definitions in JMS.

jms/putMessage - which has a queue name of a queue that lives on the MF and a Base qmgr name of backend_clus

jms/readMessage - has a queue name of the local queue on the WAS server and a base qmgr name of app_clus (not the name of the qmgr in the QCF definition)

This was fine, the messages via the magic of MQ got sent up to the mainframe. The putting application in WAS, populated the header with the reply-to-details from the jms/readMessag definition. So what was the problem?

Well, when the WAS app then tried to read the message that was on the local queue, it was trying to read from the corrct queue name but on qmgr "app_clus". This reulted in an error MQJMS1017 - queue was not a local queue. IBM and google didn't come up with much help.

In the end we created an additional jms definition - jms/readlocalMessage and got the application updated. The New jms definition had the same queue name as jms/readMessage but importantly it did not have anything in the base qmgr name filed, it would just connet to the qmgr via the QCF defitinion.

The app had to be changed so that when putting the message it used jms/readMessage to populate the heder with the correct reply details, so the message would find its was back correclty, but when actually reading the message it would use jms/readlocalMessage and the the queue as a local queue.

Make sense? Thought not. My head hurt while trying to sort this one out




No comments:

Post a Comment