5

I'm trying to write a small application which connects to a Queue Manager and issues some commands on it, in Java.

From what I have read in the documentation, I understand that one must issue commands by sending them in the "SYSTEM.ADMIN.COMMAND.QUEUE" queue.

However, the reply queue defined by replyToQueueName is still empty after execution.

Is there something I missed ?

Here is a stripped-down version of the code :

MQQueueManager qMgr = new MQQueueManager("SOME_HOSTNAME");

MQQueue qOut = qMgr.accessQueue("SYSTEM.ADMIN.COMMAND.QUEUE", MQC.MQOO_OUTPUT);
MQQueue qIn = qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_INPUT_AS_Q_DEF);

MQMessage message = new MQMessage();
message.writeUTF("DISPLAY QMGR ALL");
message.messageType = MQC.MQMT_REQUEST;
message.format = MQC.MQFMT_STRING;
message.replyToQueueName = "SYSTEM.DEFAULT.LOCAL.QUEUE";

qOut.put(message, new MQPutMessageOptions());

MQMessage retrievedMessage = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_CONVERT;

qIn.get(retrievedMessage, gmo);
T.Rob
  • 31,522
  • 9
  • 59
  • 103
slaphappy
  • 6,894
  • 3
  • 34
  • 59

1 Answers1

4

The Command Processor expects to receive messages in Programmable Command Format (PCF) format. Please see the com.ibm.mq.pcf classes and the Programmable Command Formats and Administration Interface manual.

Depending on the version of MQ client you are using, you may need to download the PCF Java classes from SupportPac MS0B. However, it is strongly encouraged to develop using the latest MQ client. The current client will always work with earlier WMQ server versions V7 and fall back to the level of functionality available on those platforms. This ensures that at least your client classes are supported, whereas an older version such as V5.3 or V6 are not.

The V7.0 MQ client is available as SupportPac MQC7.
The V7.5 MQ client is available as SupportPac MQC75.
The V8.0 MQ client is available as SupportPac MQC80.

T.Rob
  • 31,522
  • 9
  • 59
  • 103
  • Has the API changed from version 6 to version 7 ? I have seen examples, such as this one http://www.mqseries.net/phpBB2/viewtopic.php?t=15159, where commands are issued as simple message strings. – slaphappy Jul 05 '11 at 14:40
  • 1
    For more recent readers, please be aware that z/OS now supports PCF Too. Has done since V6. Also encapsulated MQSC commands (also known as Escape PCF) are not and never were supported on z/OS. When sending MQSC commands to z/OS they were not encapsulated, they were just strings put straight on the queue. – Morag Hughson Oct 04 '14 at 19:34
  • Thanks for the correction, @Morag. GREAT to have you here! – T.Rob Oct 04 '14 at 21:35