Aleksandr Broytman
Aleksandr Broytman

Reputation: 143

How to find local transmission queue of remote MQ queue in Java?

in my Java application I get MQQueue object using

MQQueue tQueue  = qManager.accessQueue(tqName, tqOptions);

The queue is a remote queue. Is there way to get corresponding local transmission queue ?

(Using MQ 7.5)

Thanks

Upvotes: 5

Views: 1624

Answers (2)

Shashi
Shashi

Reputation: 15283

Yes, using runmqsc console.

First on a command prompt run

runmqsc <qmgr>.

Once the console opens run

dis qr<remote q> XMITQ

to display the transmit queue used by the remote queue definition.

UPDATE

Another method is to use PCF classes.

      PCFMessageAgent pcfma = new PCFMessageAgent("QM");
      PCFMessage pcfCmd = new PCFMessage(MQConstants.MQCMD_INQUIRE_Q);
      pcfCmd.addParameter(MQConstants.MQCA_Q_NAME, "Q.REMOTE");
      PCFMessage[] pcfResponse = pcfma.send(pcfCmd);
      String xmitQName = (String) pcfResponse[0].getParameterValue(MQConstants.MQCA_XMIT_Q_NAME);
      System.out.println("XmitQ name " + xmitQName);

Upvotes: 3

T.Rob
T.Rob

Reputation: 31852

When MQ opens a queue it runs a name resolution process to resolve which local queue to open. If the app opens a QRemote, it generally resolves to a transmission queue.

Finding out the name of the resolved queue is easy. Just ask MQ for it after the queue is successfully opened:

public java.lang.String getResolvedQName( )

Upvotes: 1

Related Questions