MS MQ 使用实践【原创】

1. 参照百度经验 http://jingyan.baidu.com/article/546ae1856fecf91149f28c00.html,安装MSMQ

2. 访问 http://msmqjava.codeplex.com/releases/view/42708, 下载MSMQ javaAPI包。

3. 发送消息代码
  
      Queue queue=new Queue("DIRECT=OS:zhenggm-pc\\private$\\test");
      try {
			    Message msg= new Message("body", "lable", "");
			    queue.send(msg, TransactionType.SINGLE_MESSAGE);
			 }
			 catch (Exception ex1) {
			     System.out.println("Put failure: " + ex1.toString());
			 }
   

   queueName与创建的名称一致,send方法的事务性与创建的队列是否事务对应。
  

4. 接收消息代码
      Queue queue=new Queue("DIRECT=OS:zhenggm-pc\\private$\\test");
      try {
			    Message msg= queue.receive(timeOut);			    System.out.println(msg.getLabel());
                               System.out.println(msg.getBodyAsString());
			 }
			 catch (Exception ex1) {
			     System.out.println("Get failure: " + ex1.toString());
			 }
   


5. 访问远程MQ
   如果访问本地MQ收发,那么上面步骤就可以了。如果要发远程MQ,需要做些配置。远程MQ配置如下图。
  

6. MsmqJava jar包中少个内部类(Access),需要自己打包一下
7. 发送代码类似,只是OPEN MQ的时候,需要设置一下打开权限(发送)。
  
Queue queue=new Queue("DIRECT=OS:hong-pc\\private$\\test",Queue.Access.SEND);

   本地会在传出队列中自动建议一个缓冲队列。

几个问题:
1. 需要将下载的dll,lib,jar 文件放入 java.library.path .
   可以使用以下语句查看路径。
   
System.out.println(System.getProperty("java.library.path"));
  
2. 无论是否访问远程,本地需要安装MQ
3. 下载的文件是32位编译的,需要jdk 32位才能运行成功。

猜你喜欢

转载自zhenggm.iteye.com/blog/2307339
MQ
ms