Author |
Message
|
merlin |
Posted: Fri May 07, 2004 5:47 am Post subject: moving messages off the Transmit queue |
|
|
Novice
Joined: 07 Mar 2004 Posts: 19
|
hi everyone,
hopefully this topic has been covered elsewhere, and therefore let me apologise for not being able to fine it during my brief search of the forums.
Need to find out how I can redirect messages from the System.Cluster.Transmit.Queue to the cluster xmit queue of another Queue Manager.
Scenario is as follows:
QM1 and QM10 are practically identical set up, both configured to know about QM2. QM10 is not normally in use as it resides on a DR server. QM1 and QM2 are clustered and msgs flow in both directions.
Now say that QM1 can't deliver msgs to QM2 because the sender channel is down, the msgs will accumulate on the Cluster transmit queue waiting for connection to work again. However, since that could take a fair while, we want to put those messages out to QM2 using QM10, the 'shadow' Queue Manager.
Does this make sense? Can it be done easily? |
|
Back to top |
|
 |
Missam |
Posted: Fri May 07, 2004 6:31 am Post subject: |
|
|
Chevalier
Joined: 16 Oct 2003 Posts: 424
|
for communication between two QM's in a cluster only thing we need to do is create a cluster sender channel to one of full repos and a cluster receiver channel.its internal how messages pass through transmit queues.
please read QueueManager Clusters manual. |
|
Back to top |
|
 |
offshore |
Posted: Fri May 07, 2004 6:32 am Post subject: |
|
|
 Master
Joined: 20 Jun 2002 Posts: 222
|
Merlin,
I have created a setup similar to what you are asking and I'll give you
brief overview of my setup (using WMQ 5.3 for z/OS & Windows 2K).
*Pardon my ignorance, but what is a DR server?*
What OS is this running on?
1.] QM10 will need to become a member of the cluster. It will need to be identical to QM2 as far as any queues that may have to used. If everything is setup correctly, once QM1 see's that QM10 is up those messages will be sent to QM10 (and processed if the application side is ready on QM10)
2.] ClusterQ's need to be setup as DEFBIND(NOT_FIXED). The default is DEFBIND(OPEN) If the application uses affinaties, that will be something that will have to be worked out.
3.] Read/Reference the Queue Managers Cluster Book & and I also suggest the IBM RedBook WMQ in a z/OS Parallel Sysplex Environment Chapters 7 & 11 deal with clustering and various situations. Although the book does deal wtih Windows & z/OS clustering most all the information can be applied to all platforms. |
|
Back to top |
|
 |
merlin |
Posted: Fri May 07, 2004 6:42 am Post subject: |
|
|
Novice
Joined: 07 Mar 2004 Posts: 19
|
Missam, Offshore,
Thank you for your swift replies!
I think I need to add a little meat to the bones of the description of my current set-up. All QMs are clustered, so QM1 and QM10 know about QM2 and vice versa.
By the term 'DR server' I meant Disaster Recovery, i.e. the whole box is effectively a mirror of the primary server (on which QM1 runs).
What I'm getting at with this issue is when messages begin to pile up on the System.Cluster.Transmit.Queue of QM1, because the sender channel to QM2 is unavailable and may well be for some time. I want to be able to push those messages across to QM10 to be transmitted to QM2.
However, my concern is that I can't simply do this and that the actual message objects sat on QM1 cluster outqueue cannot be moved to another Queue Mgr to be sent off, even though the destination QM is the same.
Does this make a little more sense?
thanks |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri May 07, 2004 6:53 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
So what you're saying is, sometimes you have a network problem between QM1 and QM2. That is, QM2 is up and running, but is not reachable from QM1.
You want to be able to route messages from QM1 to QM2 using a different network route when this network error occurs. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
offshore |
Posted: Fri May 07, 2004 7:03 am Post subject: |
|
|
 Master
Joined: 20 Jun 2002 Posts: 222
|
oh....well that's totally different than what I thought you orginally wanted. I thought that If QM1 just couldn't get to QM2, that you wanted the messages to be routed to QM10 for processing.
i dunno...i just totally confused.... and have no idea how to do that easily |
|
Back to top |
|
 |
merlin |
Posted: Fri May 07, 2004 7:08 am Post subject: |
|
|
Novice
Joined: 07 Mar 2004 Posts: 19
|
hi jefflowrey,
think you've hit the nail on the head! That's basically it, though also to be able to grab those messages which have accumulated on the cluster outqueue of QM1 in the time it took for us to realise that they weren't going anywhere.
I was wondering after my last post if the bit that Missam wrote about Repositories isn't perhaps the answer here: if QM10 and QM1 and both full respositories, then does that mean that whatever msgs QM1 is dealing with are also over on QM10 (providing its running and visible in the network)? Then again, wouldn't there be some kind of manual logic required to get QM10 to start sending these 'copies' that were just sat on its outqueue... hmm, may be not the answer  |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri May 07, 2004 7:18 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
No, repository status has nothing to do with messages on transmit queues.
A repository is a directory of the queue managers in the cluster and the routes between them. A full repository is a complete directory, a partial directory only has the routes that have been used "recently" by the queue manager.
There are not any built-in methods for automatically moving messages out of a transmit queue other than a channel.
You *might* be able to create another cluster receiver channel on QM2 that will receive data over a different interface (presumably the one that comes from QM10). And that might work.
But like offshore said, I don't know how to do that easily. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
merlin |
Posted: Fri May 07, 2004 7:51 am Post subject: |
|
|
Novice
Joined: 07 Mar 2004 Posts: 19
|
thanks for your inputs, folks!
I was struggling to think of a good way to do it too! Have decided to explore the option of using PCF to check the channel that the message I am about to post will be using, since if the chstatus is anything except Active, then I don't want to allow messages to build up on the cluster transmit queue.
However, have still got reservations about going down this route, since you then need logic surrounding whether to keep trying to send, for how long, when to switch to the secondary Queue Mgr, when to notify a 'human' etc etc.
It don't get any easier... |
|
Back to top |
|
 |
Michael Dag |
Posted: Fri May 07, 2004 4:11 pm Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
in addition: can you please explain how QM1 can loose the network connection to QM2
and still have a 'live' connection from QM1 to QM10
and QM10 still have a 'live' connection to QM2 ???  _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
|