Thursday 30 July 2009

Coming soon(ish)...maybe

Coming up......

Not sure when I will get round to these, hopefully in the next few days.

log4j and log rotation
plugin-cfg.xml settings for a WAS cluster
Managing IHS from within the WAS admin console

For now though I think I shall head home and have a beer

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




First blog

So here we go. Finally I decided I should create a blog which can help me keep track of any quirks but might be of help to anyone reading this.

At the moment I am working for a Financial institution, installing and configuring WAS, MQ and broker in a large scale environment. We are installing on of the shelf product which is giving us endless headaches. The vendors don't seem to have ever used WAS or MQ clusters so we also have the added headache of rewriting their install documents as we go.