MQ队列长度
标签:
杂谈 |
分类: 数据库 |
原创作者ID:bicashy
MQ应用程序的开发,简单的实现一下关键的发送消息和接收消息的操作.首先做简单的准备工作,建队列管理器QM1,在QM1中建队列Q1,然后在高级中建立通道BICASHY,类型为服务器连接通道,端口号1414,这里做最简单的配置,死信、传输队列及远程队列都暂时不建。。。
注:如果建另一个队列管理器QM2,其侦听端口一定不能和1414重复。
MQ应用程序的开发,简单的实现一下关键的发送消息和接收消息的操作.首先做简单的准备工作,建队列管理器QM1,在QM1中建队列Q1,然后在高级中建立通道BICASHY,类型为服务器连接通道,端口号1414,这里做最简单的配置,死信、传输队列及远程队列都暂时不建。。。
注:如果建另一个队列管理器QM2,其侦听端口一定不能和1414重复。
- package
com.wondertek.flow.test; -
- import
java.io.IOException; -
- 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; -
- public
class MQManager { -
-
privateMQQueueManager qMgr; -
-
privatevoid getConnMQmanager() { -
"77.20.17.15";//MQEnvironment.hostname = MQ服务器IP -
"BICASHY";MQEnvironment.channel = //队列管理器对应的服务器连接通道 -
1381;MQEnvironment.CCSID = //字符编码 -
1414;MQEnvironment.port = //队列管理器的端口号 -
try{ -
newqMgr = MQQueueManager( "QM1");//队列管理器名称 -
catch} (MQException e) { -
//TODO Auto-generated catch block -
e.printStackTrace(); -
} -
} -
-
privatevoid closeConnMQmanager() { -
if(qMgr null)!= { -
try{ -
qMgr.close(); -
catch} (MQException e) { -
//TODO Auto-generated catch block -
e.printStackTrace(); -
} -
} -
} -
-
publicvoid sendMsg(String msgStr){ -
intopenOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE; -
null;MQQueue queue = -
try{ -
//建立Q1通道的连接 -
"Q1",queue = qMgr.accessQueue( openOptions, null,null,null); -
newMQMessage msg = MQMessage(); //要写入队列的消息 -
msg.format = MQC.MQFMT_STRING; -
1381;msg.characterSet = -
//将消息写入消息对象中msg.writeObject(msgStr); -
newMQPutMessageOptions pmo = MQPutMessageOptions(); -
1;msg.expiry = - //设置消息用不过期 -
//queue.put(msg, pmo); 将消息放入队列 -
catch} (MQException e) { -
//TODO Auto-generated catch block -
e.printStackTrace(); -
catch} (IOException 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(); -
} -
} -
} -
} -
-
publicvoid receiveMsg() -
{ -
intopenOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE; -
null;MQQueue queue = -
try{ -
"Q1",queue = qMgr.accessQueue( openOptions, null,null,null); -
-
"该队列当前的深度为:"+queue.getCurrentDepth());System.out.println( -
"===========================");System.out.println( -
intdepth = queue.getCurrentDepth(); -
//将队列的里的消息读出来 -
while(depth-->0) -
{ -
newMQMessage msg = MQMessage(); //要读的队列的消息 -
newMQGetMessageOptions gmo = MQGetMessageOptions(); -
queue.get(msg, gmo); -
"消息的大小为:"+msg.getDataLength());System.out.println( -
"消息的内容:\n"+msg.readObject());System.out.println( -
"---------------------------");System.out.println( -
} -
catch} (MQException e) { -
//TODO Auto-generated catch block -
e.printStackTrace(); -
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(); -
} -
} -
} -
} -
-
publicstatic void main(String[] args) { -
newMQManager mm = MQManager(); -
mm.getConnMQmanager(); -
try{ -
"第一条测试信息");mm.sendMsg( -
"test第二条测试信息");mm.sendMsg( -
mm.receiveMsg(); -
catch} (Exception e) { -
//TODO Auto-generated catch block -
e.printStackTrace(); -
} -
mm.closeConnMQmanager(); -
} -
}

加载中…