Java MQEnvironment 静态属性

标签 java ibm-mq

此代码将消息发送到 Q。设置了 MQEnvironment 静态值。但是 MQEnvironment 在管理器的任何地方都没有被引用。那么如何提供属性(主机名、 channel 、端口、CCSID)来连接MQ?

    MQEnvironment.hostname ="10.XX.XXX.XX";

    MQEnvironment.channel = "SYSTEM.DEF.SVRCONN";

    MQEnvironment.port = 1415;

    MQEnvironment.CCSID = 819;

    System.out.println("connecting MQQueueManager...");
    try {
        MQQueueManager manager = new MQQueueManager("SXX");

        MQQueue queue = null;

        int openOptions = MQC.MQOO_OUTPUT; //MQC.MQOO_INPUT_AS_Q_DEF |

        queue = manager.accessQueue("Q_NAME",
                                            openOptions,
                                            null, null, null);
        // send message
        MQMessage sendMessage = new MQMessage();

        sendMessage.writeObject("TEST MESSAGE@@@@@@@@@@@@@@@@@");
        MQPutMessageOptions pmo = new MQPutMessageOptions();

        queue.put(sendMessage, pmo);

最佳答案

MQQueueManager 对象在连接到队列管理器之前检查这些值是否已在 MQEnvironment 类中设置。

此外,请勿使用 SYSTEM.DEF.SVRCONN channel ,因为 (1) 它违反最佳实践,并且 (2) 它是一个仅供队列管理器使用的 SYSTEM 对象。只需创建或让 MQAdmin 为您创建一个 SVRCONN channel 。即 TEST.CHL

关于Java MQEnvironment 静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257300/

相关文章:

java - java异常处理中的return语句

java - 如何使用 WebDriver 更改文本区域中的文本

java - RenderRequest 上的协议(protocol)重定向

ibm-mq - 如何确定安装的WebSphere MQ是32位还是64位?

c#-4.0 - 来自 C#/.NET 的 MQ 统计监控

c - 如何在C中发送没有RFH头的MQ消息?

.net - SSL channel 连接的 MQ 上出现 2538 错误

java - linphone android 代理配置错误

java - 为什么对象在单例模式中是静态的?

apache-camel - Camel JMS 请求-回复,回复消息为 'n'