微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebSphere MQ:如何使用Java API发布MQSC命令?

我正在尝试编写一个连接到队列管理器的小应用程序,并在Java上发布一些命令.

根据我在文档中读到的内容,我了解必须通过在“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);
最佳答案
命令处理器期望以可编程命令格式(PCF)格式接收消息.请参阅com.ibm.mq.pcf类和Programmable Command Formats and Administration Interface手册.

根据您使用的MQ客户端的版本,您可能需要从SupportPac MS0B下载PCF java类.但是,强烈建议使用最新的MQ客户端进行开发.当前客户端将始终使用早期的WMQ服务器版本V7,并回退到这些平台上可用的功能级别.这可确保至少支持您的客户端类,而不支持V5.3或V6等旧版本.

V7.0 MQ客户端可用作SupportPac MQC7.
V7.5 MQ客户端以SupportPac MQC75的形式提供.
V8.0 MQ客户端以SupportPac MQC80的形式提供.

原文地址:https://www.jb51.cc/java/437863.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐