2,633
社区成员
发帖
与我相关
我的任务
分享
package main;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
/*
* 可以在MQ的资源管理器的某一个队列上放入测试消息、浏览消息等
* 可以放入多条消息,按先进先出的方式取得
*/
public class MQTest {
private String qManager;// QueueManager名
private MQQueueManager qMgr;
private MQQueue qQueue;
String HOST_NAME;
int PORT = 0;
String Q_NAME;
String CHANNEL;
int CCSID;
String Msg;
/**
* 初始化
*/
public void init() {
try {
HOST_NAME = "10.10.10.223";// Hostname或IP
PORT = 1414;// 要有一个侦听器,处于活动状态,且监听1414端口
qManager = "QM_APPLE";
Q_NAME = "Q1";// Q1是一个本地队列
CHANNEL = "QM_ORANGE.QM_APPLE";// 连接通道
CCSID = 1381; // 表示是简体中文,
MQEnvironment.hostname = HOST_NAME; // 安裝MQ所在的ip address
MQEnvironment.port = PORT; // TCP/IP port
MQEnvironment.channel = CHANNEL;
MQEnvironment.CCSID = CCSID;
qMgr = new MQQueueManager(qManager);
int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE | MQC.MQOO_OUTPUT;
qQueue = qMgr.accessQueue(Q_NAME, qOptioin);
} catch (MQException e) {
System.out.println("A WebSphere MQ error occurred : Completion code " + e.completionCode
+ " Reason Code is " + e.reasonCode);
}
}
void finalizer() {
try {
qQueue.close();
qMgr.disconnect();
} catch (MQException e) {
System.out.println("A WebSphere MQ error occurred : Completion code " + e.completionCode
+ " Reason Code is " + e.reasonCode);
}
}
/*
* 获取消息
*/
public void GetMsg() {
try {
MQMessage retrievedMessage = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options += MQC.MQPMO_SYNCPOINT;
qQueue.get(retrievedMessage, gmo);
int length = retrievedMessage.getDataLength();
byte[] msg = new byte[length];
retrievedMessage.readFully(msg);
String sMsg = new String(msg);
System.out.println(sMsg);
} catch (RuntimeException e) {
e.printStackTrace();
} catch (MQException e) {
if (e.reasonCode != 2033) // 没有消息
{
e.printStackTrace();
System.out.println("A WebSphere MQ error occurred : Completion code " + e.completionCode
+ " Reason Code is " + e.reasonCode);
}
} catch (java.io.IOException e) {
System.out.println("An error occurred whilst to the message buffer " + e);
}
}
/**
* 发送消息
* @param qByte
*/
public void SendMsg(byte[] qByte) {
try {
MQMessage qMsg = new MQMessage();
qMsg.write(qByte);
MQPutMessageOptions pmo = new MQPutMessageOptions();
qQueue.put(qMsg, pmo);
System.out.println("The message is sent!");
System.out.println("\tThe message is " + new String(qByte, "GBK"));
} catch (MQException e) {
System.out.println("A WebSphere MQ error occurred : Completion code " + e.completionCode
+ " Reason Code is " + e.reasonCode);
} catch (java.io.IOException e) {
System.out.println("An error occurred whilst to the message buffer " + e);
}
}
/**
* @param args
*/
public static void main(String[] args) {
MQTest mqst = new MQTest();
mqst.init();
try {
mqst.SendMsg("你好,我是一条测试消息!".getBytes("GBK"));
mqst.GetMsg();
} catch (Exception e) {
e.printStackTrace();
}
mqst.finalizer();
}
}