IBM MQ 简单示例
本文参考:http://blaiu.iteye.com/blog/829846
http://wenku.baidu.com/view/3fafa9cba1c7aa00b52acbd0.html
http://wenku.baidu.com/view/129678283169a4517723a3c9.html
http://keepmoving2012.iteye.com/blog/1395378
先添加IBM MQ的jar包,别忘了connector.jar,不然会报错。
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifTestMQ
1 public class TestMQ {
2 private MQQueueManager qmanager = null;
3 private MQQueue queue = null;
4
5 public TestMQ() {
6 try {
7 MQEnvironment.hostname = MQ_HOST;
8 MQEnvironment.port = MQ_PORT;
9 MQEnvironment.channel = MQ_CHANNEL;
10 qmanager = new MQQueueManager(MQ_QUEUEMANAGER_NAME);
11 int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF|MQConstants.MQOO_INQUIRE|MQConstants.MQOO_OUTPUT;
12 queue = qmanager.accessQueue(MQ_QUEUE_NAME, openOptions);
13 } catch (MQException e) {
14 e.printStackTrace();
15 }
16 }
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifgetQueueDepth
1 public Integer getQueueDepth() {
2 Integer depth = 0;
3 try {
4 if (queue != null && queue.isOpen()) {
5 depth = queue.getCurrentDepth();
6 }
7 } catch (MQException e) {
8 // TODO Auto-generated catch block
9 e.printStackTrace();
10 }
11
12 return depth;
13 }
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifclose queue&qmanager
1 public void close() {
2 if (queue != null && queue.isOpen()) {
3 try {
4 queue.close();
5 } catch (MQException e) {
6 e.printStackTrace();
7 }
8 }
9 if (qmanager != null && qmanager.isConnected()) {
10 try {
11 qmanager.disconnect();
12 } catch (MQException e) {
13 e.printStackTrace();
14 }
15 }
16 }
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifsend message to the queue
1 public void send(String msg) throws MQException {
2 try {
3
4 MQPutMessageOptions mqPutMessageOptions = new MQPutMessageOptions();
5 MQMessage mqMessage = new MQMessage();
6 mqMessage.write(msg.getBytes("utf-8"));
7 queue.put(mqMessage, mqPutMessageOptions);
8 System.out.println("Sent a message:" + msg);
9
10 } catch (UnsupportedEncodingException e) {
11 // TODO Auto-generated catch block
12 e.printStackTrace();
13 } catch (IOException e) {
14 // TODO Auto-generated catch block
15 e.printStackTrace();
16 }
17 }
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifreceive a message from the queue
1 public String receive() throws MQException{
2 MQMessage mqMsg = new MQMessage();
3 MQGetMessageOptions mqGetMessageOptions = new MQGetMessageOptions();
4 try {
5
6 queue.get(mqMsg, mqGetMessageOptions);
7 int len = mqMsg.getDataLength();
8 byte[] message = new byte;
9 mqMsg.readFully(message, 0, len);
10 String str = new String(message);
11 System.out.println("Received a message:" + str);
12 return str;
13 } catch (MQException e) {
14 // TODO Auto-generated catch block
15 e.printStackTrace();
16 return null;
17 } catch (IOException e) {
18 // TODO Auto-generated catch block
19 e.printStackTrace();
20 return null;
21 }
22
23 }
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifreceive all the messages in the queue
1 public void receiveAll() {
2 try {
3 int depth = queue.getCurrentDepth();
4 System.out.println("The current depth of queue is " + depth);
5 System.out.println("Now receive all messages....");
6 while(depth-- > 0){
7 MQMessage mqMsg = new MQMessage();
8 MQGetMessageOptions mqGetMessageOptions = new MQGetMessageOptions();
9 queue.get(mqMsg, mqGetMessageOptions);
10 int len = mqMsg.getDataLength();
11 byte[] message = new byte;
12 mqMsg.readFully(message, 0, len);
13 System.out.println(new String(message));
14
15 }
16 } catch (MQException e) {
17 // TODO Auto-generated catch block
18 e.printStackTrace();
19 } catch (IOException e) {
20 // TODO Auto-generated catch block
21 e.printStackTrace();
22 }
23
24
25 }
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifmain
1 public static void main(String[] args) {
2 TestMQ mq = new TestMQ();
3
4 try {
5 mq.send("hello everyone");
6 mq.send("WHAT");
7 // System.out.println(mq.receive());
8 } catch (MQException e) {
9 // TODO Auto-generated catch block
10 e.printStackTrace();
11 }
12 mq.receiveAll();
13 Integer depth = mq.getQueueDepth();
14 System.out.println("The current depth of queue is " + depth);
15 mq.close();
16 }
TestMQ还得加一些参数,如下:
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifparameters
1 public static final String MQ_QUEUEMANAGER_NAME = "";
2 public static final String MQ_QUEUE_NAME = "";
3 public static final String MQ_HOST = "";
4 public static final String MQ_CHANNEL = "";
5 public static final Integer MQ_PORT = ;
运行结果:
http://pic002.cnblogs.com/images/2012/305478/2012042416465976.jpg
页:
[1]