Author |
Message
|
mattfarney |
Posted: Sun Feb 17, 2013 1:07 pm Post subject: Questions about delivery on a suspended qmgr |
|
|
 Disciple
Joined: 17 Jan 2006 Posts: 167 Location: Ohio
|
Let's assume that I suspend a non-repository QM.
That QM contains the only copy of a queue (let's say alpha) shared in the cluster.
From the infocenter:
Quote: |
While the queue manager is suspended the workload management routines avoid sending messages to it, other than messages that have to be handled by that queue manager. Messages that have to be handled by that queue manager include messages sent by the local queue manager.
|
The term 'messages that have to be handled' is never really defined. The page on "The cluster workload management algorithm" is detailed, but without knowing how some of the internals work, I can't apply it to this situation.
Questions:
1. If I write a message from a different QM in the cluster, for queue alpha, will it end up in the local DLQ, the local SCTQ, suspended DLQ, or alpha?
2. Same question with the suspension being mode(force).
Guesses:
1. I'm guessing that it will end up in local SCTQ.
2. I'm guessing that it will end up in local DLQ.
-mf |
|
Back to top |
|
 |
mqjeff |
Posted: Sun Feb 17, 2013 2:04 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
I think you'll find that "there's only one copy of the queue in the cluster" means "messages have to be handled by that queue manager".
So I think the answer to both questions is "alpha". |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Feb 17, 2013 4:57 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
mqjeff wrote: |
I think you'll find that "there's only one copy of the queue in the cluster" means "messages have to be handled by that queue manager".
So I think the answer to both questions is "alpha". |
Not quite. There is a subtle distinction as to the qmgr state.
The message will land in "alpha" for the regular suspend command
The message will stay on the corresponding CTQ (cluster Transmit Queue) if the suspend was with mode (force).
Mode force stops the CLUSRCVR channel.
Eventually, after the qmgr is resumed or the cluster receiver channel is started the message will be delivered to "alpha"
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
bruce2359 |
Posted: Sun Feb 17, 2013 6:25 pm Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Suspend command asks qmgr clustering software to please stop using its queues as destinations for mqputs. Queues will continue to be destinations if there are no other available queue instances in the cluster.
The documented procedure is to put-inhibit the queues before suspending the qmgr. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Feb 18, 2013 6:03 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
bruce2359 wrote: |
The documented procedure is to put-inhibit the queues before suspending the qmgr. |
Where is this documented? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
bruce2359 |
Posted: Mon Feb 18, 2013 6:32 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Queue manager clusters manual. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Feb 18, 2013 6:32 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
bruce2359 wrote: |
Queue manager clusters manual. |
There's no such thing. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Feb 18, 2013 6:42 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Post the link to the entry please where it says you should put inhibit queues before suspending a QM. I can't find it. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
bruce2359 |
Posted: Mon Feb 18, 2013 6:49 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
I have a .pdf of the manual that doesn't exist. WebSphere MQ Queue Manager Clusters Version 7.0. SC34-6933-01. I know it's old, but it's on my thumb drive, and I'm way the heck out of town.
From the section entitled The cluster workload management algorithm:
Quote: |
5. If only remote instances of a queue remain, resumed queue managers are chosen in preference to suspended ones. |
From Maintaining a queue manager:
To suspend a queue manager, issue the SUSPEND QMGR command, for example:
Quote: |
SUSPEND QMGR CLUSTER(SALES)
This sends a notification to the queue managers in the cluster SALES advising
them that this queue manager has been suspended. The purpose of the SUSPEND QMGR command is only to advise other queue managers to avoid sending messages to this queue manager if possible. It does not mean that the queue manager is disabled. While the queue manager is suspended the workload management routines avoid sending messages to it, other than messages that have to be handled by that queue manager. Messages that have to be handled by that queue manager include messages sent by the local queue manager. |
_________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Feb 18, 2013 7:00 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Feb 18, 2013 7:14 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
You can only suspend Queue Managers from a cluster, not individual queues.
If you suspend the QM with MODE(QUIESCE), you might still want messages to arrive to this queue or other queues on this QM, so Put Inhibiting them all as a matter of practice anytime you suspend the QM would be bad.
If you suspend the QM with MODE(FORCE), nothing is coming to this QM anyway, so there is no need to put inhibit the queues.
There are certainly valid reason to put inhibit queues in a cluster, but there is no need ore IBM recomendation to do that when suspending the queue manager itself. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
bruce2359 |
Posted: Mon Feb 18, 2013 7:20 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Suspending a qmgr does not stop messages from going to its queues.
Of the choices available, put-inhibiting or taking a queue out of the cluster are ones that stops messages from going to that queue. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Feb 18, 2013 7:36 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
bruce2359 wrote: |
Suspending a qmgr does not stop messages from going to its queues.
Of the choices available, put-inhibiting or taking a queue out of the cluster are ones that stops messages from going to that queue. |
SUSPEND QM MODE(FORCE) apparently causes Cluster Receivers to STOP.
This "prevents" messages from being *delivered* to the suspended queue manager.
But it does not prevent them from being *sent* to the suspended queue manager.
There may be a very valid reason why you do not want messages that were created and addressed during the maintenance interval to be delayed until the end of the maintenance interval and then immediately delivered.
So you'd want to put-disable the receiver queue before suspending the queue manager. |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Feb 18, 2013 8:03 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
mqjeff wrote: |
bruce2359 wrote: |
Suspending a qmgr does not stop messages from going to its queues.
Of the choices available, put-inhibiting or taking a queue out of the cluster are ones that stops messages from going to that queue. |
SUSPEND QM MODE(FORCE) apparently causes Cluster Receivers to STOP.
This "prevents" messages from being *delivered* to the suspended queue manager.
But it does not prevent them from being *sent* to the suspended queue manager.
There may be a very valid reason why you do not want messages that were created and addressed during the maintenance interval to be delayed until the end of the maintenance interval and then immediately delivered.
So you'd want to put-disable the receiver queue before suspending the queue manager. |
Wrong inherent assumption here. If you do not want the messages to be delayed during the maintenance interval, the qmgr being suspended cannot be the only one hosting the queue and the processing application needs to get its messages from multiple qmgrs in the cluster.
So no need to put disable the queue as the fact that there is a non suspended qmgr in the cluster will mean that that is the one to get the messages.
You should only put-disable the queue for a maintenance interval if there is a chance that all of the other qmgrs hosting the queue may get suspended. In such a case, as all qmgrs hosting the queue are suspended, the algorithm will load balance between the suspended qmgrs where the queue is put-enabled.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mattfarney |
Posted: Mon Feb 18, 2013 8:05 pm Post subject: |
|
|
 Disciple
Joined: 17 Jan 2006 Posts: 167 Location: Ohio
|
So let's say a message gets delayed in the SCTQ while the remote system is unavailable/suspended(force).
Is that message QMID aware?
Or is it just a normal transmission header with QM/QName?
Let's say QM Ohio is replaced with QM Ohio+.
Ohio+ is created in Ohio's image, but does have a new QMID.
When all of the cluster resolution issues are resolved, will the messages in the SCTQ for Ohio be delivered to Ohio+?
-mf |
|
Back to top |
|
 |
|