Java MQEnvironment静态属性

Java MQEnvironment静态属性,java,ibm-mq,Java,Ibm Mq,此代码将消息发送到Q。设置MQEnvironment静态值。但是MQEnvironment未在管理器中的任何位置引用。那么如何提供属性(主机名、通道、端口、CCSID)以连接到MQ MQEnvironment.hostname ="10.XX.XXX.XX"; MQEnvironment.channel = "SYSTEM.DEF.SVRCONN"; MQEnvironment.port = 1415; MQEnvironment.CCSID = 819;

此代码将消息发送到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);

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


另外,不要使用SYSTEM.DEF.SVRCONN通道,因为(1)它不符合最佳做法,(2)它是仅由队列管理器使用的系统对象。只需创建或让MQAdmin为您创建一个SVRCONN通道。i、 e.TEST.CHL

MQEnvironment具有公共静态类变量(一种全局常量)。如果设置了这些值,MQQueueManager对象将使用这些值。

有没有办法直接在MQQueueManager.java中设置它们?设置什么?频道名称、主机名和端口#?不要使用MQEnvironment类,因为它不是线程安全的。将信息放入哈希表中,并将其传递给MQQueueManager类。看见