Author |
Message
|
sraguilar |
Posted: Thu Apr 25, 2013 1:59 pm Post subject: Error 2087 when writting a remoteQueue with empty XMITQ |
|
|
Newbie
Joined: 25 Apr 2013 Posts: 2
|
Hi, I have QM1 and QM2 on windows with mq 7.5 and QM3 in AS400 with MQ 5.3.
I can send message to QM3 through remote queues defined on QM1 and QM2, and it works fine
The problem is when I have to send the response from QM3 to QM1/QM2
I need to response using replyToQ and ReplyToQMGR because I don't know who sent the message
This are my queue definitions on QM3
DEFINE QR(QR.PROCESS) RQMNAME () XMITQ()
DEFINE QL(QM1) USAGE(XMITQ) ...
DEFINE QL(QM2) USAGE(XMITQ) ...
and of course I have the sdr/rcvr channels.
Now... If I define the QR like this DEFINE QR(QR.PROCESS) RQMNAME (QM1) XMITQ(QM1) it works, the problem is when I leave the RQMNAE and XMITQ properties EMPTY.
I tested this same situation with QM3 on windows with 7.5 and it worked, so my doubt is, can I leave RQNAME and XMITQ empty on MQ 5.3 to decide based on replyToQmgrName to which QM send the message ?
Can it work differnt on windows than on iseries ?
Any help will be appreciated
Thanks very much!!!! |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Apr 25, 2013 9:09 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
you have to be careful. It works differently whether the destination qmgr is part of a cluster or not.
The default routing alias for the cluster would be either
Code: |
def qr(remoteqmgrname) rqmname(remoteqmgrname) |
or nothing at all (i.e. not needed)
If the destination qmgr is not part of the cluster you would need
Code: |
def qr(remoteqmgrname) rqmname(remote qmgr name) xmitq(next.hop) |
There are more subtleties when dealing with a gateway qmgr (read up docu) but these are the basics...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
sraguilar |
Posted: Fri Apr 26, 2013 6:15 am Post subject: |
|
|
Newbie
Joined: 25 Apr 2013 Posts: 2
|
fjb_saper, thanks for your answer
I dont undestand what you mean with "rqmname(remoteqmgrname)", the remote queue manager can be QM1 or QM2, thats what I dont know and it should be taken from MQMD.replyToQmgr. As I said, this works fine in MQ 7.5 on windows plataform. Can I put an alias ? xmitq(next.hop) is that an alias ? should I define a xmitq name next.hop? thanks again! |
|
Back to top |
|
 |
Vitor |
Posted: Fri Apr 26, 2013 6:25 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sraguilar wrote: |
As I said, this works fine in MQ 7.5 on windows plataform |
What are you using to test this on the AS/400 5.3 queue manager, i.e. what is putting the reply message? What are you using to put the reply message on Windows? I'm guessing these are 2 different tools (unless you've managed to port Windows <-> AS400) so is there any chance that the difference is not in the MQ layer but in the way the reply messages are being addressed?
sraguilar wrote: |
it should be taken from MQMD.replyToQmgr. |
WMQ will not take it from the MQMD; whatever puts the reply should use the MQMD reply values to address it.
At a WMQ level all that's needed is the ability to resolve the destination queue manager name, which for a cluster based solution can be a little tricky on 5.3 _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri Apr 26, 2013 6:27 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
sraguilar wrote: |
Can I put an alias ? xmitq(next.hop) is that an alias ? should I define a xmitq name next.hop? thanks again! |
Next hop? Are you saying that the reply messages must transit an intermediary qmgr in order to be returned to the originating application? _________________ 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 |
|
 |
fjb_saper |
Posted: Fri Apr 26, 2013 10:27 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Vitor wrote: |
sraguilar wrote: |
it should be taken from MQMD.replyToQmgr. |
WMQ will not take it from the MQMD; whatever puts the reply should use the MQMD reply values to address it.
At a WMQ level all that's needed is the ability to resolve the destination queue manager name, which for a cluster based solution can be a little tricky on 5.3 |
Which means on MQ 5.3 that you will either allow put to the SYSTEM.CLUSTER.TRANSMIT.QUEUE (not recommended) or that you will need to have a qmgr alias in place to facilitate routing:
Code: |
def qr(qm2) rqmname(qm2) |
This should allow to route all messages for cluster QMGR QM2 from your cluster member.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sat Apr 27, 2013 2:35 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
There is no mention of MQ clustering in this set up by the OP.
This is a very basic MQ routing situation.
They need to delete this remote queue definition, its not needed.
Code: |
DEFINE QR(QR.PROCESS) RQMNAME () XMITQ() |
When the app connected to QM wants to reply to the ReplyToQ and ReplyToQM of incoming messages, all it needs to do is supply both the reply queue and the reply to QM on the MQOPEN or MQPUT1 call. MQ Name resolution will find the XMITQ back to QM1 or QM2 and the reply message will flow appropriately. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Apr 28, 2013 9:10 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
PeterPotkay wrote: |
There is no mention of MQ clustering in this set up by the OP.
This is a very basic MQ routing situation.
They need to delete this remote queue definition, its not needed.
Code: |
DEFINE QR(QR.PROCESS) RQMNAME () XMITQ() |
When the app connected to QM wants to reply to the ReplyToQ and ReplyToQM of incoming messages, all it needs to do is supply both the reply queue and the reply to QM on the MQOPEN or MQPUT1 call. MQ Name resolution will find the XMITQ back to QM1 or QM2 and the reply message will flow appropriately. |
You are supposing he followed convention and his xmitq name is the name of the destination qmgr. If this is not the case he needs to create the corresponding qmgr alias... (read up in the intercommunications manual). Or search for qmgr alias....
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sun Apr 28, 2013 3:57 pm Post subject: Re: Error 2087 when writting a remoteQueue with empty XMITQ |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
sraguilar wrote: |
DEFINE QL(QM1) USAGE(XMITQ) ...
DEFINE QL(QM2) USAGE(XMITQ) ...
and of course I have the sdr/rcvr channels.
|
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
|