Author |
Message
|
belchman |
Posted: Thu Jan 17, 2008 6:44 am Post subject: My First "Did MQ Lose My Message?", in Cluster |
|
|
Partisan
Joined: 31 Mar 2006 Posts: 386 Location: Ohio, USA
|
Hello All,
I am wondering where my missing message went.
Here is the scenario:
4 MQ nodes are in a cluster; QMgrA, B, C, D
All of the nodes are >= MQ v6.0.2.0.
Two of the nodes are Full Repos (FP); QMgrA and QMgrB.
The FPs are on MQv 6.0.2.2.
The client app services clustered qs on FP nodes
The client app only runs on 1 of the FP nodes at a time (warm standby)
MQ server always runs on hot node and warm standby node.
MQ Setup:
QMgrA and QMgrB are on same physical host (for this test)
QMgrC and QMgrD are on different hosts
There is an AliasQ on each of QMgrC and QMgrD that resolves to QueueA @ cluster
The queue named QueueA is local on QMgrA and QMgrB
QueueA is in the cluster and visible by all cluster nodes
QueueA @ QMgrA has CLWL Priority of 9 and BindType not fixed
QueueA @ QMgrN has CLWL Priority of 0 and BindType not fixed
Tests I Ran
-QMgrA and QMgrB are both running
-Client app is listening for work on QMgrA
-On QAQMC, run Explorer 'put test message' 3 times, shut it down, put three more
-Inspect QueueA @ QMgrA and see 6 messages i sent
-Clear messages from QueueA @ QMgrA
-Stop QMgrA
-On QAQMC, run Explorer 'put test message' 3 times, shut it down, put three more
-Inspect QueueA @ QMgrB and see last 5 messages sent but not 1st one
I looked at depths of all queues on all four nodes and I do not see the missing message any where, where I would expect it. Not in the cluster xmit, not in DLQs, not I target Qs.
I would think that the messages, once placed on cluster xmit, are persistant between clussdr and clusrcvr but couldn't verify in docs.
Where did the message go? The bit bucket? Any insight would be appreciated.
Thanks _________________ Make three correct guesses consecutively and you will establish a reputation as an expert. ~ Laurence J. Peter |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 6:51 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Message persistence is definied by the putting application, not by the queue setting remember. If the original alias specifies not persistent then the message is not persistent & can be deleted.
What happens when QmgrA is restarted? Does the missing message get delivered to it or remain missing? _________________ Honesty is the best policy.
Insanity is the best defence.
Last edited by Vitor on Thu Jan 17, 2008 7:00 am; edited 2 times in total |
|
Back to top |
|
 |
belchman |
Posted: Thu Jan 17, 2008 6:52 am Post subject: |
|
|
Partisan
Joined: 31 Mar 2006 Posts: 386 Location: Ohio, USA
|
Vitor,
I haven't tried that... let me try it... i will post results in a min or 2
Thx 4 reply _________________ Make three correct guesses consecutively and you will establish a reputation as an expert. ~ Laurence J. Peter |
|
Back to top |
|
 |
belchman |
Posted: Thu Jan 17, 2008 7:07 am Post subject: |
|
|
Partisan
Joined: 31 Mar 2006 Posts: 386 Location: Ohio, USA
|
I just ran another test... Here is what I did... and here are the results...
-QMgrA and QMgrB are running
-From QMgrD, using MQ Explorer 'Put test message' I put three msgs with text 1,2,3 to aforementioned alias q
-Then I close bounce 'Put test message' app and put three more with text 4,5,6 respectively
-I inspect QueueA @ QMgrA and all 6 messages are there
-I can remember If I cleared QueueA @ QMgrA at this point or not
-I shut down QMgrA and waited until all processes were down
-From QMgrD, using MQ Explorer 'Put test message' I put three msgs with text 7,8,9 to aforementioned alias q
-Then I close bounce 'Put test message' app and put three more with text 10,11,12 respectively
-I inspect QueueA @ QMgrB and all 5 messages with body text of 8,9,10,11,12 are present.
-I inspect QueueA @ QMgrA and it is empty
-On each node, I sort all queues on depth descending and inspect and do not see any depth on a q that i wolud think would hold an undeliverable msg _________________ Make three correct guesses consecutively and you will establish a reputation as an expert. ~ Laurence J. Peter |
|
Back to top |
|
 |
belchman |
Posted: Thu Jan 17, 2008 7:11 am Post subject: |
|
|
Partisan
Joined: 31 Mar 2006 Posts: 386 Location: Ohio, USA
|
Vitor,
In reponse to you persistance comment.
Yes, I am aware of that. However, is it not true that MCA @ source and MCA @ destination intercommunications are under persistance? I could not find an answer to that.
Remember, in my tests, I wait until the QMgrA is completely down befire I send msgs 7 - 12. MQ should not be attempting to deliver the msg to QMgrA _________________ Make three correct guesses consecutively and you will establish a reputation as an expert. ~ Laurence J. Peter |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Jan 17, 2008 7:16 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
belchman wrote: |
Vitor,
In reponse to you persistance comment.
Yes, I am aware of that. However, is it not true that MCA @ source and MCA @ destination intercommunications are under persistance? I could not find an answer to that.
Remember, in my tests, I wait until the QMgrA is completely down befire I send msgs 7 - 12. MQ should not be attempting to deliver the msg to QMgrA |
Grave misconception. If the message is not persistent and there is a problem in communications, the channel is allowed to loose the message. If you want assured delivery make the message persistent...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 7:16 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
belchman wrote: |
However, is it not true that MCA @ source and MCA @ destination intercommunications are under persistance? |
No. If it was true the channel attribute NPMSPEED would be pointless because all messages would be persistent. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 7:20 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
belchman wrote: |
-I shut down QMgrA and waited until all processes were down |
How did you make this determination? endmqm -w or manually inspect the processes?
Have you tried it using amqsputc, closing the application and reopening it after the queue manager shutdown? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
belchman |
Posted: Thu Jan 17, 2008 7:22 am Post subject: |
|
|
Partisan
Joined: 31 Mar 2006 Posts: 386 Location: Ohio, USA
|
Pow-Pow, the double dope slap. Vitor and Saper, are you guys on same project and sitting in adjacent cubicles and simultaneously issues a coordinated dope-slap?
Let me use another application to put the messages under persistence and rerun the test. I will post the results here.
It may take a while because I have to find some app to use. _________________ Make three correct guesses consecutively and you will establish a reputation as an expert. ~ Laurence J. Peter |
|
Back to top |
|
 |
belchman |
Posted: Thu Jan 17, 2008 7:26 am Post subject: |
|
|
Partisan
Joined: 31 Mar 2006 Posts: 386 Location: Ohio, USA
|
Vitor,
To see that QMgrA was completely down, I issues ps -ef
grep QMgrA over and over until no running processes.
The only MQ client I have used so far is 'Put Test Message'. I never tried using AMQSPUTC to put a persistent msg... Let me inspect that to see if it has a persistent flag. _________________ Make three correct guesses consecutively and you will establish a reputation as an expert. ~ Laurence J. Peter |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 7:28 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
belchman wrote: |
I never tried using AMQSPUTC to put a persistent msg... Let me inspect that to see if it has a persistent flag. |
It's coded with "Persistence as Q default" so if the queue's set right you can be confident. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 7:30 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
belchman wrote: |
Pow-Pow, the double dope slap. Vitor and Saper, are you guys on same project and sitting in adjacent cubicles and simultaneously issues a coordinated dope-slap?
|
I'm actually a dummy - he's working me with his foot.
To the best of my knowledge we're not actually on the same continent. It's just a freaky coincidence.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
belchman |
Posted: Thu Jan 17, 2008 7:48 am Post subject: |
|
|
Partisan
Joined: 31 Mar 2006 Posts: 386 Location: Ohio, USA
|
OK,
I ran another test using AMQSPUT (not putc) on QMgrC.
Pre-Setup was setting presistence on alias @ QMgrC to persistence
-With QMgrs QMgrA and QMgrB both running, I put msg 1 -3 using amqsput, then I ended/restarted amqsput and put msg 4 - 6
-All 6 msgs were on QMgrA as expected.
-I shut down QMgrA and verified complete shutdown
-Then using amqsput @ QMgrC, I put msgs 7 - 9, ended restarted amqsput, and put msgs 10 - 12.
-I started QMgrA
-Inspection showed msgs 1 - 6 on QMgrA, msgs 8 - 12 (msg 7 missing) on QMgrB
I will now run test again with alias @ QMgrC persistent and local @ QMgrA and QMgrB persistent _________________ Make three correct guesses consecutively and you will establish a reputation as an expert. ~ Laurence J. Peter |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 7:51 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
belchman wrote: |
-With QMgrs QMgrA and QMgrB both running, I put msg 1 -3 using amqsput, then I ended/restarted amqsput and put msg 4 - 6
-All 6 msgs were on QMgrA as expected.
-I shut down QMgrA and verified complete shutdown
-Then using amqsput @ QMgrC, I put msgs 7 - 9, ended restarted amqsput, and put msgs 10 - 12.
|
So amqsput was running & had the connection open when QmgrA was shut down? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 7:55 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
belchman wrote: |
I ran another test using AMQSPUT (not putc) on QMgrC.
Pre-Setup was setting presistence on alias @ QMgrC to persistence
...
I will now run test again with alias @ QMgrC persistent and local @ QMgrA and QMgrB persistent |
So does this imply that the queues on A & B are currently not persistent? Or is this a typo and the first test was with the alias set to non-persistent?
Also tell me again why you're using an alias Q on C? Is this an alias for the queue name or a cluster alias?
What happens if you avoid the alias, i.e. amqsput directly to the queue name, shut down A and put directly to the queue name again? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|