MS MQ 使用实践【原创】
程序员文章站
2022-06-13 19:44:06
...
1. 参照百度经验http://jingyan.baidu.com/article/546ae1856fecf91149f28c00.html,安装MSMQ
2. 访问http://msmqjava.codeplex.com/releases/view/42708, 下载MSMQ javaAPI包。
3. 发送消息代码
queueName与创建的名称一致,send方法的事务性与创建的队列是否事务对应。
4. 接收消息代码
5. 访问远程MQ
如果访问本地MQ收发,那么上面步骤就可以了。如果要发远程MQ,需要做些配置。远程MQ配置如下图。
6. MsmqJava jar包中少个内部类(Access),需要自己打包一下
7. 发送代码类似,只是OPEN MQ的时候,需要设置一下打开权限(发送)。
本地会在传出队列中自动建议一个缓冲队列。
几个问题:
1. 需要将下载的dll,lib,jar 文件放入 java.library.path .
可以使用以下语句查看路径。
2. 无论是否访问远程,本地需要安装MQ
3. 下载的文件是32位编译的,需要jdk 32位才能运行成功。
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位才能运行成功。