首先把你的hostname改为IP,然后再试下这段代码看能不能连接上:public class MessageByMQ{ //定义队列管理器和队列的名称 private static String qmName; &nb...
显示全部首先把你的hostname改为IP,然后再试下这段代码看能不能连接上:
public class MessageByMQ{
//定义队列管理器和队列的名称
private static String qmName;
private static String qName;
private static MQQueueManager qMgr;
static{
//设置环境:
//MQEnvironment中包含控制MQQueueManager对象中的环境的构成的静态变量,MQEnvironment的值的设定会在MQQueueManager的构造函数加载的时候起作用,
//因此必须在建立MQQueueManager对象之前设定MQEnvironment中的值.
MQEnvironment.hostname="192.168.0.240"; //MQ服务器的IP地址
MQEnvironment.channel="SYSTEM.ADMIN.SVRCONN"; //服务器连接的通道
MQEnvironment.CCSID=1208; //服务器MQ服务使用的编码1381代表GBK、1208代表UTF(Coded Character Set Identifier:CCSID)
MQEnvironment.port=1414; //MQ端口
qmName = "aaa"; //MQ的队列管理器名称
qName = "a"; //MQ远程队列的名称
try {
//定义并初始化队列管理器对象并连接
//MQQueueManager可以被多线程共享,但是从MQ获取信息的时候是同步的,任何时候只有一个线程可以和MQ通信。
qMgr = new MQQueueManager(qmName);
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("初使化MQ出错");
e.printStackTrace();
}
}
public static int sendMessage(String message){
int result=0;
try{
//设置将要连接的队列属性
// Note. The MQC interface defines all the constants used by the WebSphere MQ Java programming interface
//(except for completion code constants and error code constants).
//MQOO_INPUT_AS_Q_DEF:Open the queue to get messages using the queue-defined default.
//MQOO_OUTPUT:Open the queue to put messages.
/*目标为远程队列,所有这里不可以用MQOO_INPUT_AS_Q_DEF属性*/
//int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;
/*以下选项可适合远程队列与本地队列*/
int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
//连接队列
//MQQueue provides inquire, set, put and get operations for WebSphere MQ queues.
//The inquire and set capabilities are inherited from MQManagedObject.
/*关闭了就重新打开*/
if(qMgr==null || !qMgr.isConnected()){
qMgr = new MQQueueManager(qmName);
}
MQQueue queue = qMgr.accessQueue(qName, openOptions);
//定义一个简单的消息
MQMessage putMessage = new MQMessage();
//将数据放入消息缓冲区
putMessage.writeUTF(message);
//设置写入消息的属性(默认属性)
MQPutMessageOptions pmo = new MQPutMessageOptions();
//将消息写入队列
queue.put(putMessage,pmo);
queue.close();
}catch (Exception ex) {
System.out.println("A WebSphere MQ error occurred : Completion code ") ;
}finally{
try {
qMgr.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
收起