JAVA 调用MQ
来源:互联网 发布:nginx 压力测试 编辑:程序博客网 时间:2024/05/29 11:16
前提:MQ服务器端创建
队列管理器:QueueManager
队列:XML.IN
服务器连接通道:SYSTEM.ADMIN.SVRCONN
监听器监听1414端口。
package mq;import com.ibm.mq.MQC;import com.ibm.mq.MQEnvironment;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 * * @author Administrator * */public class TestMQ {/** * 队列管理器 */private static final String MQ_QUEUE_MANAGER = "QueueManager";/** * 队列 */private static final String MQ_QUEUE = "XML.IN";/** * 通道 */private static final String MQ_CHANNEL = "SYSTEM.ADMIN.SVRCONN";/** * IP */private static final String MQ_HOST = "localhost";/** * 端口 */private static final int MQ_PORT = 1414;private MQQueueManager qMgr;/** * 测试 * @param args */public static void main(String[] args) {TestMQ test = new TestMQ();test.getConnMQManager();test.sendMessage("1111111");test.receiveMsg();}/** * 发送消息到MQ * @param message */public void sendMessage(String message) {MQQueue mqQueue = null;try {// 建立连接int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT| MQC.MQOO_INQUIRE;mqQueue = qMgr.accessQueue(MQ_QUEUE, openOptions, null, null, null);MQMessage msg = new MQMessage();msg.format = MQC.MQFMT_STRING;msg.characterSet = 1381;msg.writeObject(message);MQPutMessageOptions pmo = new MQPutMessageOptions();// 设置消息用不过期msg.expiry = -1; // 将消息放入队列mqQueue.put(msg, pmo);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();} finally{if(mqQueue!=null){try {mqQueue.close();} catch (Exception e2) {// TODO: handle exceptione2.printStackTrace();}}}}/** * 读取MQ消息 */public void receiveMsg(){MQQueue mqQueue = null;try {// 建立连接int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT| MQC.MQOO_INQUIRE;mqQueue = qMgr.accessQueue(MQ_QUEUE, openOptions, null, null, null);// 队列深度int depth = mqQueue.getCurrentDepth();System.out.println("当前队列深度为:"+depth);while (depth-->0){// 要读取的消息MQMessage msg = new MQMessage();MQGetMessageOptions mqGet = new MQGetMessageOptions();mqQueue.get(msg, mqGet);System.out.println("消息的大小为:"+msg.getDataLength());System.out.println("消息的内容为:"+msg.readObject());}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();} finally{if(mqQueue!=null){try {mqQueue.close();} catch (Exception e2) {// TODO: handle exceptione2.printStackTrace();}}}}/** * 获取连接 */public void getConnMQManager() {MQEnvironment.hostname = MQ_HOST;MQEnvironment.channel = MQ_CHANNEL;MQEnvironment.CCSID = 1381; // 字符编码MQEnvironment.port = MQ_PORT;try {qMgr = new MQQueueManager(MQ_QUEUE_MANAGER);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}/** * 关闭连接 */public void closeConnMQManager() {if (qMgr != null) {try {qMgr.close();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}}}对于报以下错误的可参考http://www-01.ibm.com/support/docview.wss?uid=swg21636532
MQJE001:发生 MQException:完成码 2,原因 2035
MQJE036:队列管理器拒绝连接尝试
MQJE001:完成码 2,原因 2035
com.ibm.mq.MQException: MQJE001:完成码 2,原因 2035
1 0
- Java调用MQ队列
- JAVA 调用MQ
- Java调用MQ队列
- websphere mq java调用mqi通信demo
- Websphere MQ 简单调用
- mq的消息调用
- MQ java 基础编程
- MQ java Code
- java连接ibm mq
- java连接ibm mq
- Java 连接MQ
- JAVA MQ编码部分
- Java连接IBM MQ
- JAVA连接IBM MQ
- Java 连接active mq
- Java中使用MQ
- websphere mq jms调用通信demo
- JMS调用IBM MQ监听模式
- android亮屏、黑屏、解锁事件的系统广播接收
- 挺不错的移动端调试工具----debuggap
- Customised collectionView
- 字典树
- Haskell之Yesod开发–简单网站开发(四)
- JAVA 调用MQ
- [image processing]matlab
- iOS开发应用程序图标大小汇总
- sql两个表结果计算后合并数据
- 由于undo tablespace没有空间不够导致的问题
- Android_多媒体详解
- 并查集
- template模板
- 在android apk中使用internal包