3
votes

Just want to confirm the correct way the MQ delivers messages to the MQOutput node. Recently came across a situation where i a felt bit confused. Here is the scenario.

I have a local queue on Qmgr,say(A) which receives messages from applications and have a local broker associated with this qmgr(A) with a message flow deployed, which consumes messsages from this queue and drops it to another local(L.B) queue on Queue manager (B).

To successfully deliver the messages to qmgr(B) do i have to

  1. Create a remote queue definition on Qmgr(A) with transmission queue name matching the remote queue manager name, here(B) MQOutput node value set as, queue->remote queue definition name on (A) and queue manager value as blank
    or

  2. to create only the transmission queue that matches with the name of the remote queue manager name, here(B). MQOutput node value set as queue-> target local queue (L.B) and Queue manager value as (B).

When i follow with the first process, noticed messages reaching the destination and when i follow with the later one, noticed messages sitting up in the local queue itself.

Is there any necessity to always create 'n' number of remote queue definitions when it needs to drop messages to 'n' number of local queues?

Kindly guide me to better understand this. Thanks in advance to each of you.

1

1 Answers

3
votes

There is no necessity to create n remote queue definitions, MQ is happy to accept output marked as destined for "Queue Name" on "Queue Manager Name".

You say that when using method 2. that your messages are "sitting up in the local queue". There are a few things you must check to solve this problem.

  • I assume the named queue L.B is defined on QMgr B and not QMgr A?
  • I assume the local queue the messages are sitting on is a transmission queue?
  • Have you defined a channel to read messages from the transmission queue they are stuck on?
  • Have you started the channel which should be moving the messages off the transmission queue to QMgr B?