Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebSphere MQ: How to issue MQSC Commands using the Java API?

Tags:

java

ibm-mq

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);
like image 478
slaphappy Avatar asked Oct 10 '22 14:10

slaphappy


1 Answers

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.

like image 157
T.Rob Avatar answered Oct 13 '22 04:10

T.Rob