您的位置:首页 > 编程语言 > Java开发

Java连接MQ的实例

2015-07-13 20:10 585 查看
package cjf.mq.mqclient;

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;
import com.ibm.mq.MQGetMessageOptions;

public class MQClient {

static MQQueueManager qMgr;
static int CCSID = 1381;//WINGBK,1208:UTF-8
static String queueString = "MQ_QUEUE";

public static void connect() throws MQException {
MQEnvironment.hostname = "";
MQEnvironment.channel = "java.channel";
MQEnvironment.port = 1321;
MQEnvironment.CCSID = CCSID;

qMgr = new MQQueueManager("MQ_TEST");
qMgr.disconnect();
}

public static void sendMsg(String msgStr) {
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT
| MQC.MQOO_INQUIRE;
MQQueue queue = null;
try {
// 建立Q1通道的连接
queue = qMgr
.accessQueue(queueString, openOptions, null, null, null);
MQMessage msg = new MQMessage();// 要写入队列的消息
msg.format = MQC.MQFMT_STRING;
msg.characterSet = CCSID;
msg.encoding = CCSID;
// msg.writeObject(msgStr); //将消息写入消息对象中
msg.writeString(msgStr);
MQPutMessageOptions pmo = new MQPutMessageOptions();
msg.expiry = -1; // 设置消息用不过期
queue.put(msg, pmo);// 将消息放入队列
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (queue != null) {
try {
queue.close();
} catch (MQException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

public static void receiveMsg() {
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT
| MQC.MQOO_INQUIRE;
MQQueue queue = null;
try {
queue = qMgr
.accessQueue(queueString, openOptions, null, null, null);
System.out.println("该队列当前的深度为:" + queue.getCurrentDepth());
System.out.println("===========================");
int depth = queue.getCurrentDepth();
// 将队列的里的消息读出来
while (depth-- > 0) {
MQMessage msg = new MQMessage();// 要读的队列的消息
MQGetMessageOptions gmo = new MQGetMessageOptions();
queue.get(msg, gmo);

System.out.println("消息的大小为:" + msg.getDataLength());
System.out.println("消息的内容:\n"
+ msg.readLine());
System.out.println("---------------------------");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (queue != null) {
try {
queue.close();
} catch (MQException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

public static void main(String[] args) throws MQException {
connect();
sendMsg("fuck MQ");
receiveMsg();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: