Author |
Message
|
Vitor |
Posted: Mon Nov 27, 2006 8:49 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
From the APR we obtain:
Field Description
StrucId Structure identifier
Version Structure version number
Reason Reason message arrived on dead-letter queue
DestQName Name of original destination queue
DestQMgrName Name of original destination queue manager
Hence the reason code is a known distance into the header! _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
LemonJelly |
Posted: Mon Nov 27, 2006 9:21 am Post subject: |
|
|
Novice
Joined: 24 Nov 2006 Posts: 23
|
Vitor wrote: |
From the APR we obtain:
Field Description
StrucId Structure identifier
Version Structure version number
Reason Reason message arrived on dead-letter queue
DestQName Name of original destination queue
DestQMgrName Name of original destination queue manager
Hence the reason code is a known distance into the header! |
So if I have this right then:
Struct ID should be 1 byte long
Version should be 2 bytes long
Reason should be 3 bytes into:
444c48200000000100000827414d4c2e414d4c532e4d45442e544f494e2020202020202020202020
202020202020202020202020202020202020202053554e5343422e51554555452e4d414e41474552
2020202020202020202020202020202020202020202020202020202000000111000003334d514852
4632202000000006616d71726d707061202020202020202020202020202020202020202032303036
3131323730393031313937385246482000000002000000b400000111000004b84d51535452202020
00000000000004b8000000203c6d63643e3c4d73643e6a6d735f746578743c2f4d73643e3c2f6d63
643e2020000000683c6a6d733e3c4473743e71756575653a2f2f616c6368616978312e7175657565
2e6d616e616765722f414d4c2e5341412e4d45442e544f3c2f4473743e3c546d733e313136343632
363739313535393c2f546d733e3c446c763e323c2f446c763e3c2f6a6d733e203c4d657373616765
3e0a3c49643e3c215b43444154415b49424f46494945324458585831303331323334353637383930 |
|
Back to top |
|
 |
Vitor |
Posted: Mon Nov 27, 2006 9:27 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
LemonJelly wrote: |
So if I have this right then:
Struct ID should be 1 byte long
Version should be 2 bytes long
Reason should be 3 bytes into:
|
If StructID is described as an MQCHAR4, why would it be 1 byte long??
Likewise, Version & Reason are MQLONG which is not a 1 byte datatype.
But in principle you're right on the money. And to save a little time, an MQLONG is 4 bytes long. You'd find this in the manual soon enough anyway.
And so our answer is: _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Nov 27, 2006 9:32 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
LemonJelly wrote: |
444c4820 00000001 00000827 |
QED _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mvic |
Posted: Mon Nov 27, 2006 9:36 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
Vitor wrote: |
LemonJelly wrote: |
444c4820 00000001 00000827 |
|
And, to save a little bit more time:
Code: |
> mqrc 0x827
2087 0x00000827 MQRC_UNKNOWN_REMOTE_Q_MGR |
|
|
Back to top |
|
 |
Vitor |
Posted: Mon Nov 27, 2006 9:41 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mvic wrote: |
Vitor wrote: |
LemonJelly wrote: |
444c4820 00000001 00000827 |
|
And, to save a little bit more time:
Code: |
> mqrc 0x827
2087 0x00000827 MQRC_UNKNOWN_REMOTE_Q_MGR |
|
Damn - I was waiting for the "but 827 isn't a reason code"!!
LemonJelly - having already realised that 827 = 2087 = Unknown Remote Queue Manager, you'll have deduced where your error most likely is. Past this point, it's specific to your set-up and I'm back to guessing.
Hope you've been taking notes for next time....  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
LemonJelly |
Posted: Mon Nov 27, 2006 9:54 am Post subject: |
|
|
Novice
Joined: 24 Nov 2006 Posts: 23
|
Vitor wrote: |
mvic wrote: |
Vitor wrote: |
LemonJelly wrote: |
444c4820 00000001 00000827 |
|
And, to save a little bit more time:
Code: |
> mqrc 0x827
2087 0x00000827 MQRC_UNKNOWN_REMOTE_Q_MGR |
|
Damn - I was waiting for the "but 827 isn't a reason code"!!
LemonJelly - having already realised that 827 = 2087 = Unknown Remote Queue Manager, you'll have deduced where your error most likely is. Past this point, it's specific to your set-up and I'm back to guessing.
Hope you've been taking notes for next time....  |
im slow... but I may have copped that bit........
but seriously ... thanks heaps.......
at least I know now how to read the dam thing,..,.
 |
|
Back to top |
|
 |
LemonJelly |
Posted: Mon Nov 27, 2006 10:31 am Post subject: |
|
|
Novice
Joined: 24 Nov 2006 Posts: 23
|
Just to clarify:
This unknown queue...
Is this case of the sender does not know the receiver queuemanager
the receiver doesnt know the sending queuemanager
Or the receiver is trying to put the message onto an unkniwn queue manager
thanks again |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Nov 27, 2006 2:50 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
The receiver does not have to "know" the sending qmgr (not true if you have set any of the report options).
I would suspect in this case the qmgr putting the message to the DLQ has no default path to the QMGR specified on the MQMD (destination qmgr).
This is often an occurrence in multihopping. Make sure a default way is always present for routing the message. You may have to add a qmgr alias, see the intercommunications manual...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Vitor |
Posted: Tue Nov 28, 2006 12:26 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
LemonJelly wrote: |
im slow... but I may have copped that bit........
but seriously ... thanks heaps.......
at least I know now how to read the dam thing,..,.
 |
Speed is not the issue; it's a tortoise & hare thing. You have more knowledge than when you started, will be able to fix it immediately next time & have left a valuable thread in the forum for the next unluckly victim.
Well done you!
P.S. Remember what I said about the dead letter handler. It's a help. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
LemonJelly |
Posted: Tue Nov 28, 2006 5:32 am Post subject: |
|
|
Novice
Joined: 24 Nov 2006 Posts: 23
|
fjb_saper wrote: |
The receiver does not have to "know" the sending qmgr (not true if you have set any of the report options).
I would suspect in this case the qmgr putting the message to the DLQ has no default path to the QMGR specified on the MQMD (destination qmgr).
This is often an occurrence in multihopping. Make sure a default way is always present for routing the message. You may have to add a qmgr alias, see the intercommunications manual...
Enjoy  |
Not using multihopping.
The way I saw it was that
Remote Q was putting a messing on transmission q.... then across to other queue manager, then gets picked up by local q and then picked up there by an mdb.... |
|
Back to top |
|
 |
Vitor |
Posted: Tue Nov 28, 2006 5:47 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
It's not picked up by the local queue; it's picked up by the receiving queue manager. If (for instance) the queue manager name doesn't match the one in the message it will assume the message is trying to multihop and it will redirect the message to the correct transmission queue to satisfy this (as per the Intercommunication manual & fjb_saper).
The error code you're getting means that the queue manager doesn't think the message is for it, and can't find a route to the specified destination queue manager. Check your definitions again. And the Intercommunication manual - some of your views appear slightly at odds with what's really happening.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
LemonJelly |
Posted: Tue Nov 28, 2006 6:22 am Post subject: |
|
|
Novice
Joined: 24 Nov 2006 Posts: 23
|
Vitor wrote: |
It's not picked up by the local queue; it's picked up by the receiving queue manager. If (for instance) the queue manager name doesn't match the one in the message it will assume the message is trying to multihop and it will redirect the message to the correct transmission queue to satisfy this (as per the Intercommunication manual & fjb_saper).
The error code you're getting means that the queue manager doesn't think the message is for it, and can't find a route to the specified destination queue manager. Check your definitions again. And the Intercommunication manual - some of your views appear slightly at odds with what's really happening.  |
If there is only 1 Q manager on the specific ip... are you saying the the message will reach this server, realise the q manager name is nto recognised and then place it on the default q manager dead letter q? |
|
Back to top |
|
 |
Vitor |
Posted: Tue Nov 28, 2006 6:32 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
1) How does it know it's the only queue manager? It may not even be the default queue manager?
2) Messages are routed to queue managers not IP addresses. Routing depends on what the queue manager knows about.
3) All routing failures are placed on the dead letter queue of the queue manager experiencing the failure.
This is WMQ 101 stuff.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
LemonJelly |
Posted: Tue Nov 28, 2006 7:16 am Post subject: |
|
|
Novice
Joined: 24 Nov 2006 Posts: 23
|
Vitor wrote: |
1) How does it know it's the only queue manager? It may not even be the default queue manager?
2) Messages are routed to queue managers not IP addresses. Routing depends on what the queue manager knows about.
3) All routing failures are placed on the dead letter queue of the queue manager experiencing the failure.
This is WMQ 101 stuff.  |
if the q managers are on seperate servers????
I presume it gets routed to ip address, on the listening port.... picked up by the specified q manager? |
|
Back to top |
|
 |
|