WebSphere MQ: How to issue MQSC Commands using the Java API?
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.acc开发者_如何学编程essQueue("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);
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.
精彩评论