我正在嘗試編寫一個連接到隊列管理器的小應用程序,並在它上面發出一些Java命令。WebSphere MQ:如何使用Java API發佈MQSC命令?
從我在文檔中讀到的內容中瞭解到,必須通過在「SYSTEM.ADMIN.COMMAND.QUEUE」隊列中發送命令來發出命令。
但是,執行後,由replyToQueueName
定義的應答隊列仍爲空。
有什麼我錯過了嗎?
下面是代碼的精簡版本:
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);
API是否已從版本6更改爲版本7?我見過一些例子,比如這個http://www.mqseries.net/phpBB2/viewtopic.php?t=15159,其中命令是作爲簡單的消息字符串發佈的。 – slaphappy
對於更新的讀者,請注意z/OS現在支持PCF。自V6以來已經完成。此外,封裝的MQSC命令(也稱爲Escape PCF)不會在z/OS上受支持。將MQSC命令發送到z/OS時,它們未被封裝,只是將字符串直接放在隊列中。 –
感謝您的更正,@Morag。很高興有你在這裏! –