此代码将消息发送给Q.设置了MQEnvironment静态值。但MQEnvironment是没有引用在经理的任何地方。那么如何提供连接到MQ的属性(主机名,通道,端口,CCSID)?看Java MQEnvironment静态属性
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 [email protected]@@@@@@@@@@@@@@@@");
MQPutMessageOptions pmo = new MQPutMessageOptions();
queue.put(sendMessage, pmo);
有没有办法直接在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