Author |
Message
|
vjsony |
Posted: Sat Mar 02, 2002 7:18 am Post subject: |
|
|
 Apprentice
Joined: 01 Aug 2001 Posts: 45
|
Hi everyone,
The question: How do you put a message on a dynamic queue on a remote machine?
The configuration:
I have defined a Remote definition on my local queue manager which points to a model queue on the remote machine.
The channels have been defined
However, when I open the remote defn on my local machine, and put a message, the message ends up on the dead letter queue on the remote machine.
Any pointers??
Please respond.
VJ
|
|
Back to top |
|
 |
mqonnet |
Posted: Sat Mar 02, 2002 9:07 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
Vj,
Dynamic queues are created ONLY on an MQOPEN of a Model queue. One cannot put a message onto a Model queue, which you are trying to do. When you put the message onto the remote queue on the 1st Qm, it is trasmitted accross to the 2nd Qm. Here the mca tries to put the message to the queue it was asked to and it is a Model queue. Messages cannot be put onto a model queue. And that is the reason MCA tries in vain and puts the message onto the Dead letter queue.
Cheers.
Kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
mqonnet |
Posted: Sat Mar 02, 2002 11:39 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
VJ,
Thinking it a bit more, i believe that Dynamic Queue Creation on a Remote Queue manager is NOT POSSIBLE. I would surely welcome any statements otherwise. And surely want to know if it can be done.
Dynamic queues are created by an App ONLY. And thus it could be local. Dynamic queues are created on an MQOPEN call to a Model queue. Model queue serves as a template to create the requested Dynamic queue. And since in this case it is the MCA who would be trying to open the Model queue, an app nor anyone, could modify the open options of the mca. And thus the mca cannot open the model queue to create a dynamic queue for you.
Hope this helps.
Cheers.
Kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
kolban |
Posted: Sat Mar 02, 2002 11:46 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2001 Posts: 1072 Location: Fort Worth, TX, USA
|
Ah ... but just to add some more confusion
Consider the difference between permanent dynamic and temprorary dynamic ... I am thinking that there might be something meaningful in creation a permanent dynamic queue on a remote system ... |
|
Back to top |
|
 |
mqonnet |
Posted: Sat Mar 02, 2002 12:31 pm Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
Yeah, i also thought that Perm dyna queue might server a lot of purpose when defined on a remote queue. More so because temp dyna queue does not have a lifetime beyond the app. But then i would think the very purpose of a dyna queue is defeated if we are trying to create using this mechanism(if at all it can be created at the first place). We could as well use predefined queues for this purpose.
But yes, i would surely like be willing to know of any such means of dyna queue creations. As i have not come accross one.
Cheers.
kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
StefanSievert |
Posted: Mon Mar 04, 2002 1:39 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Interesting subject...
I was always considering the MCA to be just another MQSeries application, that does nothing more than any other application (apart from some trivial networking and handshaking stuff... ). It connects to a queue manager, it opens queue objects and it puts messages to these objects (on the receiving side). I have never tried to put to a remote queue that ultimately maps to a model queue, though.
VJ, you wrote:
Quote: |
However, when I open the remote defn on my local machine, and put a message, the message ends up on the dead letter queue on the remote machine.
|
What is the reason code that is being reported in the dead letter header?
Cheers,
Stefan
_________________
Stefan Sievert
IBM Certified * MQSeries
[ This Message was edited by: StefanSievert on 2002-03-04 13:40 ] |
|
Back to top |
|
 |
mqonnet |
Posted: Mon Mar 04, 2002 2:25 pm Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
Just to add to my Earlier thoughts, creation of Dynamic Queues Remotely is NOT SUPPORTED ON Any Platforms of MQ as of today.
Cheers.
Kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
jfluitsm |
Posted: Tue Mar 05, 2002 1:28 am Post subject: |
|
|
Disciple
Joined: 24 Feb 2002 Posts: 160 Location: The Netherlands
|
MCA acts as an app.
But when you open a remote queue, you actual opens the xmit-queue.
The MCA has no way to know whether a message on the channel is for an already created dyn. queue or for a new one.
I was thinking of a probable solution, although not a nice one.
With a request/reply app you ask for a new perm dyn queue, the real name along with the queuemanager name is returned to the requester.
This name can be used to send the messages.
A xmit-queue with the remote queue-manager name must exists, or a queue-manager alias defining the correct xmit-queue.
I didn't tried this scenario, so maybe I missed something and this doesn't work either.
_________________ Jan Fluitsma
IBM Certified Solution Designer WebSphere MQ V6
IBM Certified Solution Developer WebSphere Message Broker V6 |
|
Back to top |
|
 |
dgolding |
Posted: Tue Mar 05, 2002 3:03 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
I used (many moons back) an application system that was using remote dynamic queues, similar to Mr Fluitsmas' suggestion. A request was sent to a handler to create a queue, then the reply message sent back contained the new queue name. This was then used in the "real" message(s) that were sent to the remote system. There are a few points:
1) I assume the queue was permanent dynamic, and there was some sort of clean-up mechanism involved (to delete the queue when finished), but I can't remember
2) As mentioned before, you MUST have a transmit queue with the same name as the remote queue manager, this should get around having to create a remote queue name on the sending side. Don't forget to put the new queue name in the message descriptor.
As I said, it was a long-time back, and I can't remember all the nitty-girtty details, but it was definitely a workable (and working) system. |
|
Back to top |
|
 |
mqonnet |
Posted: Tue Mar 05, 2002 5:13 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
Frankly speaking, i am still not sure what is the need for queues being defined remotely, keeping in mind that this is not directly supported by MQ. And hence it would require a lot of workarounds. Which means it sure is very costly as far as performance is concerned. I dont think all this is worth setting up, if we could as well use predefined queues. As such the only dyna queue that is possible in this scenario is Only Perm Dyna queues.
I dont have any bussiness case to represent this situation.
Any thoughts into this would be good.
Cheers.
Kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
StefanSievert |
Posted: Tue Mar 05, 2002 10:34 am Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Quote: |
On 2002-03-05 01:28, jfluitsm wrote:
MCA acts as an app.
But when you open a remote queue, you actual opens the xmit-queue.
The MCA has no way to know whether a message on the channel is for an already created dyn. queue or for a new one.
|
I was thinking of the receiving MCA, not the sending MCA. The sending MCA has in no regard any knowledge about the remote system, apart from the stuff it needs to know to perform successful channel negotiation and startup.
It makes total sense to me that the remote creation of dynamic queues is not supported for quite a few reasons, so I am not questioning the design here.
How would you initiate the application to get messages from such a dynamic queue, for example?
I was just curious about the DLQ reason code that got produced when trying to do it. Does the original poster remember?
I agree that it is (very) hard to think of a business scenario that would require/justify remote dynamic queue creation.
_________________
Stefan Sievert
IBM Certified * MQSeries
[ This Message was edited by: StefanSievert on 2002-03-05 10:35 ] |
|
Back to top |
|
 |
mqonnet |
Posted: Tue Mar 05, 2002 11:56 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
The reason code is appropriate to the expected behaviour and which is 2057, MQRC_Q_TYPE_ERROR. Since MQ does not support putting messages onto a Model queue via the MCA, it rejects the call with this error and sends the message to DLQ.
Cheers.
Kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
|