Java MQEnvironment静态属性

3
这段代码将消息发送到Q。MQEnvironment静态值被设置。但是,在管理器中并未引用MQEnvironment。那么,如何提供属性(主机名、通道、端口、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);
2个回答

3
对象在连接队列管理器之前检查是否已在类中设置了这些值。 <不要使用通道,因为(1)这是违反最佳实践的,(2)这是一个仅由队列管理器使用的对象。只需创建或请求创建一个通道,例如TEST.CHL。

有没有办法直接在MQQueueManager.java中设置它们? - hipokito
设置什么?频道名称、主机名和端口号码吗?不要使用MQEnvironment类,因为它不是线程安全的。将信息放入Hashtable中,并将其传递给MQQueueManager类。请参见https://stackoverflow.com/questions/34628283/java-program-to-connect-wmq-with-user-id-instead-of-channel/34642355#34642355。 - Roger

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接