Author |
Message
|
carolhara |
Posted: Tue Nov 06, 2007 5:00 am Post subject: Where are my messages? |
|
|
Acolyte
Joined: 02 Oct 2007 Posts: 56
|
The channel searches for the transmission queue with the same name as the queue manager. If it does not exist, the messages are put in the default transmission queue. But what if there is NO default transmission queue? Where do my messages go? Not in the DLQ.
V5.3 csd12
Thanks. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Nov 06, 2007 5:14 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Are they persistent messages?
Or non-persistent messages?
Does the app receive a non-zero MQ Completion Code, with accompanying MQ Reason Code?
There's more information in the Intercommunications Guide, particularly the first couple of chapters... http://publibfp.boulder.ibm.com/epubs/html/csqzae09/csqzae09tfrm.htm
and also in the Application Programming Guide. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
carolhara |
Posted: Tue Nov 06, 2007 5:22 am Post subject: |
|
|
Acolyte
Joined: 02 Oct 2007 Posts: 56
|
jefflowrey wrote: |
Are they persistent messages?
Or non-persistent messages?
Does the app receive a non-zero MQ Completion Code, with accompanying MQ Reason Code?
There's more information in the Intercommunications Guide, particularly the first couple of chapters... http://publibfp.boulder.ibm.com/epubs/html/csqzae09/csqzae09tfrm.htm
and also in the Application Programming Guide. |
Hi!
They are persistent messages.
And I´m the one who is sending them. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Nov 06, 2007 5:33 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I'm not sure I understand what you mean when you say that you aren't the one sending them...
If you mean "I'm not the one that wrote the application that is sending these messages", then you need to talk to the team responsible for the application and get them to tell you where they put them, or what the MQCC/MQRC they received was. There's a substantially higher chance that they did something wrong than that MQ just "lost" these messages.
If you mean "an external partner claims to have sent these messages"... then again, you need to go back to them and get more information.
Or just tell them that MQ didn't lose the messages, they did and it's their job to figure out where they went, and what can you do to help? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
carolhara |
Posted: Tue Nov 06, 2007 5:41 am Post subject: |
|
|
Acolyte
Joined: 02 Oct 2007 Posts: 56
|
No...
I´m sending messages through amqsput remotequeue queuemanager
I think it is called multi hoping... or something... the mannual doesn´t say much about that. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Nov 06, 2007 5:47 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Okay.
So amqsput doesn't give you any error messages?
Look at the RMQNAME of the QREMOTE.
That will tell you what qmgr name is being resolved.
Is the qmgr in a cluster? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Nov 06, 2007 5:56 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
jefflowrey wrote: |
Look at the RMQNAME of the QREMOTE.
|
And don't forget the qremote can specify a transmission queue to use which may have nothing to do with the queue manager; especially if you're multi-hopping. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
carolhara |
Posted: Tue Nov 06, 2007 6:00 am Post subject: |
|
|
Acolyte
Joined: 02 Oct 2007 Posts: 56
|
No, no error messages.
The queue manager is not shared in cluster.
But I already looked in the queue in the remote queue manager and the messages aren´t there. |
|
Back to top |
|
 |
JuulV |
Posted: Tue Nov 06, 2007 6:05 am Post subject: |
|
|
 Apprentice
Joined: 05 Sep 2007 Posts: 28 Location: Belgium
|
If the messages are successfully put (MQRC == 0) AND they're persistent, WMQ will not loose the messages.
So, if you're sure that above 2 conditions are met, the messages definitely will be on a queue, and as they're persistent, they will also be written to the WMQ recovery logs. If you absolutely don't have any idea of the queue that the messages have been written to, you could use a log analysis tool (E.g. Cressida ReQuest for WMQ) to search your log files using some selection criteria (date and time, part(s) of the message data, destination QMgr and queue, ...). The report will tell you, amongst other things, the queue name(s) were the selected messages have been written to.
Regards, _________________ Juul Vanparijs
Senior Developer
Cressida Technology Ltd |
|
Back to top |
|
 |
carolhara |
Posted: Tue Nov 06, 2007 6:06 am Post subject: |
|
|
Acolyte
Joined: 02 Oct 2007 Posts: 56
|
Vitor wrote: |
jefflowrey wrote: |
Look at the RMQNAME of the QREMOTE.
|
And don't forget the qremote can specify a transmission queue to use which may have nothing to do with the queue manager; especially if you're multi-hopping. |
Are you talking about the default queue?
I just wanna know what happened to my messages since I "forgot" to create the default. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Nov 06, 2007 6:18 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
We're not talking about default queue.
We're talking about figuring out what xmitq the messages went to.
There's a property of the QREMOTE that you specified when you "amqsput remotequeue queuemanager" called "RQMNAME".
There's also a property called "XMITQ".
One of those will tell you which XMITQ the message should have gone to.
If the AMQSPUT succeeded without error, and the qremote has DEFPSIST(YES), then the messages will be persistent and will be *somewhere*.
If DEFPSIST is not (YES), then the messages will have been non-persistent, and could possibly have been discarded. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
bruce2359 |
Posted: Tue Nov 06, 2007 9:04 am Post subject: |
|
|
Guest
|
Please post your qremote definition.
Please post the definition of the queue named in the xmitq attribute of the qremote definition. If there is no xmitq attribute, then look at the qmgr object for default transmission queue attribute. If the qmgr object has a default transmission queue, then post the object definition of that queue. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Nov 06, 2007 3:41 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
And don't forget that a remote queue can also be used to define a qmgr alias and not for direct posting...
So you can change the qmgr name on the destination via the alias.
your message might have been consumed by a target qmgr with the same qname if your qmgr alias changed the dest qmgr on you...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
bruce2359 |
Posted: Tue Nov 06, 2007 6:49 pm Post subject: |
|
|
Guest
|
Back to the original post:
Quote: |
The channel searches for the transmission queue with the same name as the queue manager. If it does not exist, the messages are put in the default transmission queue. But what if there is NO default transmission queue? Where do my messages go? Not in the DLQ. |
Not so. Briefly, when the application MQOPENs the qname, the qmgr does name resolution - looking for a local, model, alias or remote definition. For a QRemote definition:
1) the name will resolve to the transmission queue if one is specified in the xmitq attribute of the QRemote definition; or
2) if no xmitq is specified, the name will resolve to a queue that matches the rqmname attribute of the QRemote definition; or
3) if no rqmname attribute is specified, the name will resolve to a default transmission queue specified in the qmgr object; or
4) if no default transmission queue is specified in the qmgr object, the MQOPEN will fail with object not found.
So, if you received no reason code and message from amqsput; then the open succeeded.
Again, please post the QRemote definition, the qmgr object attributes, and your complete interaction with amqsput. |
|
Back to top |
|
 |
carolhara |
Posted: Wed Nov 07, 2007 10:18 am Post subject: |
|
|
Acolyte
Joined: 02 Oct 2007 Posts: 56
|
We´ve got 3 Queue Managers (QMA , QMB e QMC)
Queue Manager QMA connected to Queue Manager QMB
Queue Manager QMB connected to Queue Manager QMC
We are using the multi hoping to send messages from Queue Manager
QMA to Queue Manager QMC. This way, messages have to pass through Queue Manager QMB.
We have put messages in a remote queue in queue manager QMA.
Queue Manager QMA
RQueue : QR.C
Remote Queue Name : QL.C
Remote Queue Manager Name : QMC
When we define a Transmission Queue named QMC, or, if we have a Default Transmission Queue in Queue Manager QMB, the message stays in this transmission queue, and then we can send it to QMC through sender channel.
If we don´t have any transmission queue defined to QMC, neither a default, what happens to the message? We cannot find it anywhere. |
|
Back to top |
|
 |
|