Author |
Message
|
4everfsu |
Posted: Tue Dec 18, 2012 11:39 am Post subject: Testing HA qmanagers and losing persistent msgs when failing |
|
|
Apprentice
Joined: 17 Jan 2008 Posts: 34
|
Testing HA qmanagers and losing persistent msgs when failing over. I have a qmanager called QMMMMX01 running on Z3 and Z4 on aix servers. I run a test script from my mq client laptop to Z3 using amqsphac program and do a endmqm -is on the running qmanager and it fails over successfully. I let it run and then killed ctrl c and run amqsghac to get the msgs. I only get the msgs that wrote to the queue on Z4, none from Z3.
Target queue is set to persistent. Any ideal of what could be the problem. Thanks
C:\Users\cjt08>amqsphac PULSE.REPLY
Sample AMQSPHAC start
target queue is PULSE.REPLY
message <Message 1>
message <Message 2>
message <Message 3>
message <Message 4>
message <Message 5>
message <Message 6>
message <Message 7>
message <Message 8>
message <Message 9>
message <Message 10>
message <Message 11>
message <Message 12>
message <Message 13>
message <Message 14>
message <Message 15>
message <Message 16>
message <Message 17>
message <Message 18>
14:46:10 : EVENT : Connection Reconnectin
14:46:12 : EVENT : Connection Reconnectin
14:46:15 : EVENT : Connection Reconnectin
14:46:18 : EVENT : Connection Reconnectin
14:46:22 : EVENT : Connection Reconnected
message <Message 19>
message <Message 20>
message <Message 21>
message <Message 22>
message <Message 23>
message <Message 24>
message <Message 25>
message <Message 26>
message <Message 27>
message <Message 28>
message <Message 29>
message <Message 30>
message <Message 31>
message <Message 32>
message <Message 33>
message <Message 34>
message <Message 35>
^C
C:\Users\cjt08>amqsghac
Sample AMQSGHAC start
Required parameter missing - queue name
Sample AMQSGHAC end
C:\Users\cjt08>amqsghac PULSE.REPLY
Sample AMQSGHAC start
message <Message 19>
message <Message 20>
message <Message 21>
message <Message 22>
message <Message 23>
message <Message 24>
message <Message 25>
message <Message 26>
message <Message 27>
message <Message 28>
message <Message 29>
message <Message 30>
message <Message 31>
message <Message 32>
message <Message 33>
message <Message 34>
message <Message 35>
^C
C:\Users\cjt08>
Last edited by 4everfsu on Tue Dec 18, 2012 11:54 am; edited 1 time in total |
|
Back to top |
|
 |
zpat |
Posted: Tue Dec 18, 2012 11:50 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
Persistent does not guarentee that they won't be lost if removed by an application without using syncpoint. |
|
Back to top |
|
 |
4everfsu |
Posted: Tue Dec 18, 2012 11:55 am Post subject: |
|
|
Apprentice
Joined: 17 Jan 2008 Posts: 34
|
|
Back to top |
|
 |
Vitor |
Posted: Tue Dec 18, 2012 12:35 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
You're still assuming the sample puts persistent messages.
You've said nothing about how you've verified your multi-instance set up, especially the locking strategy of the NFS storage shared between the queue managers.
You've said nothing about what leads you to believe that those samples will yield the results you're expecting if you use crtl-c rather than endmqm. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
4everfsu |
Posted: Tue Dec 18, 2012 12:41 pm Post subject: |
|
|
Apprentice
Joined: 17 Jan 2008 Posts: 34
|
Instead of using the amqsphac and amqsghac scripts I used amqsputc to Z4, endmqm -is Z4, continue to put using amqsputc to Z3 and then did a amqsgetc and pull all 17 msgs off both Z3 and Z4.
I found the culprit. I ran the test again using amqsphac script, killed it and checked the msgs on the Z3 before switching over to Z4.
AMQSPHAC over wrote the queue persistent and put all 20 msgs as non persistent. |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Dec 18, 2012 12:44 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
4everfsu wrote: |
AMQSPHAC over wrote the queue persistent and put all 20 msgs as non persistent. |
No.
AMQSPHAC fails to set PERSISTENCE_AS_QDEF.
Queues have only a *DEFAULT* persistence.
The only thing that can be persistent or not is a MESSAGE.
You need to *fully understand* this. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Dec 18, 2012 1:13 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
4everfsu wrote: |
AMQSPHAC over wrote the queue persistent and put all 20 msgs as non persistent. |
No, the sample simply did not use the persistence default supplied by the queue. It's a perfectly reasonable thing for an application to do.
Any persistence you set on the queue is only a default, not an enforced value. This has been discussed many times on this forum.
If you want to enforce persistence, one of the forum's sponsors sells a product which does that. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
bruce2359 |
Posted: Tue Dec 18, 2012 2:15 pm Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Defpdist is not a default at all. The queue attribute only sets message persistence if the app specifies mqper_as_qdef (persistence as defined at the 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 |
|
 |
|