Author |
Message
|
jmeier |
Posted: Tue Oct 15, 2002 11:46 am Post subject: [Solved]Reply To Queue in Cluster |
|
|
Apprentice
Joined: 30 Aug 2002 Posts: 46 Location: Minneapolis
|
I have a VB application running on NT that is trying to put a message to a queue on a UNIX box. I am getting a ReasonCode 2085, MQRC_UNKNOWN_OBJECT_NAME. The code that is crashing is:
Set PutMQQueue = MQQueueMgr.AccessQueue(oMsg.ReplyToQueueName, MQAX200.MQ.MQOO_OUTPUT)
What am I missing? A message can be placed on the queue using a command line, but not thru the VB application.
Thanks in advance for any help.... _________________ Joe Meier
Last edited by jmeier on Wed Mar 05, 2003 1:54 pm; edited 1 time in total |
|
Back to top |
|
 |
bduncan |
Posted: Tue Oct 15, 2002 8:59 pm Post subject: |
|
|
Padawan
Joined: 11 Apr 2001 Posts: 1554 Location: Silicon Valley
|
Joe,
Have you browsed these messages on the queue before retrieving them to ensure that the REPLYTOQ attribute is actually set correctly? It sounds like they are empty and your application is trying to open an unnamed queue on the reply... _________________ Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator |
|
Back to top |
|
 |
jmeier |
Posted: Wed Oct 16, 2002 4:13 am Post subject: |
|
|
Apprentice
Joined: 30 Aug 2002 Posts: 46 Location: Minneapolis
|
I am actually specifying the reply to queue name in a prior statement. The reply q is filled in on the queue also.
putMsg.ReplyToQueueName = "DEV.DEVGRP.DEVSYS.EXEXML"
I also have verified that the case is correct on the queue name. _________________ Joe Meier |
|
Back to top |
|
 |
jmeier |
Posted: Wed Oct 16, 2002 6:08 am Post subject: |
|
|
Apprentice
Joined: 30 Aug 2002 Posts: 46 Location: Minneapolis
|
I also just checked out putting a message to the reply 2 queue from an amqsput command and it sent OK. It just seems to be how my code is handling it. Any suggestions?
Thanks. _________________ Joe Meier |
|
Back to top |
|
 |
mrlinux |
Posted: Wed Oct 16, 2002 6:57 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
1) Are you running your VB app as client or Server ???
2) you mention command line (from where are you executing this)
NT or UNIX ??? _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
jmeier |
Posted: Wed Oct 16, 2002 7:15 am Post subject: |
|
|
Apprentice
Joined: 30 Aug 2002 Posts: 46 Location: Minneapolis
|
I am running the VB application as a server app and I used the NT command line. The reply to queue is sitting on the Unix server, however, I have tried to use a queue on the NT box as well and get the same error. _________________ Joe Meier |
|
Back to top |
|
 |
mrlinux |
Posted: Wed Oct 16, 2002 7:21 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well my guess is that this "putMsg.ReplyToQueueName " should refernce the destination queue. Iam not a vb programmer.
more like this putMsg.QueueName _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
nimconsult |
Posted: Wed Oct 16, 2002 11:07 pm Post subject: |
|
|
 Master
Joined: 22 May 2002 Posts: 268 Location: NIMCONSULT - Belgium
|
Reading at the subject of your question, I will assume that your queue managers on NT and Unix boxes are together in a cluster, and you try, from the NT queue manager, to reply to a queue located on the Unix box.
I have personally little experience with using the API in VB, but I can try an explanation.
I think that your problems comes from the argument used in the MQOPEN statement by the "accessQueue(queueName, options)" method. More specifically, I think that the problem comes from the queue manager name attribute.
Try this:
cluster with QM1 and QM2.
In QM1, define a local queue LQ.QM1, published in the cluster.
Open the API exerciser (amqapi.exe), connect to QM2, perform this test:
(1)
In advanced mode, MQOPEN with BIND_NOT_FIXED, queue manager name = "QM2", queue name = "LQ.QM1".
MQOPEN result is MQCC_FAILED (2085).
(2)
In advanced mode, MQOPEN with BIND_NOT_FIXED, queue manager name = "", queue name = "LQ.QM1".
MQOPEN result is MQCC_OK.
I think that the accessQueue method with no queue manager parameter fills in the queue manager name attribute, and that is why it fails.
Possible solutions to your problem:
(1)
If the VB API is similar to the Java one, you should have another accessQueue method with a queue manager name argument.
(2)
Reply messages are more generally sent with MQPUT1 (instead of MQOPEN, MQPUT, MQCLOSE) because the server is not supposed to know the reply-to-queue name in advance.
If the VB API is similar to the Java one, you should have a "put" method at the level of the queue manager object, in which you can pass the queue manager name (=inputmsg.replyToQMgr) and queue name (=inputmsg.replyToQ). _________________ Nicolas Maréchal
Senior Architect - Partner
NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be |
|
Back to top |
|
 |
jmeier |
Posted: Mon Oct 21, 2002 12:46 pm Post subject: |
|
|
Apprentice
Joined: 30 Aug 2002 Posts: 46 Location: Minneapolis
|
I am now trying to just put the message to a queue and setting an error queue as a replytoqueue. This seems to work somewhat, in that I now receive error messages to the error queue. I am having issues with successfully putting to the original queue. The error message in the error queue is:
FMC00805E OID for persistentObject() not valid.
Has anyone else run into this? _________________ Joe Meier |
|
Back to top |
|
 |
|