
谁能告诉我为什么么?
大哥你怎么看的?QL CLUSTER属性设置对了吗?
DEF QL(YOURQNAME) CLUSTER(REPOS_NAME)
你看的是QCLUSTER吗?
DIS QC(*)
2.往一个队列管理器里的队列里发消息,
其他的所有对立管理器的本地队列都能收到消息
太简单了,注意RFHUTIL里面有个BIND属性,不要设置成OPEN,必须是NOT_FIXED;或者多次使用amqsputc多次打开,不要一次拼命放消息,都可以看到分发效果,默认负载均衡的算法是ROUND_ROBIN
3.好了,上面的问题解决了。。
不过现在对WebSphere MQ的功能产生了怀疑,
我真想捧腹大笑
4.应用程序只能主动去询问MQ,指定的队列中有消息否。要是这样的话,那不是要轮询指定的队列?难道不能让MQ将消息直接推送到应用程序么?
去看看TRIGGER, MDB有关的资料,我不想费口舌了。当你学会基础之前STOP MAKING JUDGEMENTS.
使用引用消息传送文件以下 *** 作均以admin用户为例:
1. 将admin用户加入administrator和mqm用户组,重新登录;
2. 修改MQ服务的登录用户为admin,然后重新启动MQSeries服务;
3. 修改MQ DCOM组件的登录用户为“启动用户”,这样当以admin用户使用MQ资源管理器时,该DCOM组件将以admin用户的身份运行;关闭MQ资源管理器并重新打开,以使修改生效。
4. 启动Queue Manager,以QMA(发送文件,在MACHINE1服务器上)和QMB(接受文件,在MACHINE2服务器上)为例;
5. 创建MQ对象:
1)在QMA上:
define chl(chl1) chltype(sdr) trptype(tcp) conname('machine2') +
xmitq(xmitq) msgdata(FLATFILE) +
msgexit(' D:\IBM\WMQ\Tools\c\Samples\Bin\amqsxrm(MsgExit) ')
define ql(xmitq) usage(xmitq)
define chl(report) chltype(rcvr) trptype(tcp) replace
define qr(qr) rname(dq) rqmname(QMB) xmitq(xmitq) replace
2)在QMB上:
define chl(chl1) chltype(rcvr) trptype(tcp) +
msgexit(' D:\IBM\WMQ\Tools\c\Samples\Bin\amqsxrm(MsgExit) ') +
msgdata(FLATFILE)
define chl(report) chltype(sdr) trptype(tcp) conname('MACHINE1')
xmitq(QMA)
define ql(QMA) usage(xmitq)
注:如果使用MQ提供的接样例程序amqsgrm.exe接收文件,则作以下3)之后的设置,也可另写接受程序直接接收消息并获得已送达数据文件的名称。
3)在QMB上(可选):
define ql(initq)
define pro(proc) applicid('D:\IBM\WMQ\Tools\c\Samples\Bin\amqsgrm')
define ql(dq) initq(initq) process(proc) trigger trigtype(first)
在 MQ 服务中为 QMB 创建“触发器监控器”服务,设定监控队列为 INITQ ;并启动;
6. 在发送端启动发送通道chl1,在接收端启动发送通道report;
此时所有的配置已经完成,可以使用样例中的amqsprm.exe程序发送文件:
amqsprm -m QMA -i d:\tmp\src\srcfile.name -o d:\tmp\dest\destfile.name -q QR -t FLATFILE -w 10
7. 查验d:\tmp\dest\destfile.name文件已经产生。
[TOC]
Spring Boot作为简化Spring开发的框架,已经为我们集成了ActiveMQ和RabbitMQ。只需在Spring Boot配置几个MQ的连接方式即可开箱即用。大大简化了开发配置过程。
Spring的JavaConfig相比传统的XML的配置方式使得配置更加的可靠和方便。
本文将会说明如何用JavaConfig的方式将Spring与IBM WebSphere MQ(以下简称IBM MQ)集成配置,也可以作为其他MQ的配置参考。
17年后官方maven仓库以有相关依赖
IBM MQ相关的连接依赖包为 com.ibm.mq.allclient.jar ,该包不存在于公共Maven仓库,所以我们需要找到该依赖包并手动安装到我们本机的Maven仓库中。
该依赖包位于 [IBM MQ 安装路径]\java\lib 下,Windows下的默认安装路径为 C:\Program Files\IBM\WebSphere MQ\ ,Linux下的默认安装路径为 /opt/mqm/ 。可以将该包复制到开发机上。
通过以下命令安装该包到本地仓库
在Idea中可以按四次Shift键调出全局搜索框,键入Execute Maven Goal,等待搜索结果后按回车,即可执行Maven命令, 在此执行命令时不需要键入命令开头的 mvn 。
编辑项目pom.xml文件,添加以下三个依赖,分别为
配置Spring Boot配置文件,application.yml,此处用的是yaml格式配置文件,application.properties的配置方法可以参考Spring Boot的说明。
建立 JmsConfig 类,添加注解 @Configuration ,并将以上属性注入到此类。
在JmsConfig类添加以下方法。
不配置该类则每次与MQ交互都需要重新创建连接,大幅降低速度。
不使用事务可以跳过该步骤。如需使用事务,可添加注解 @EnableTransactionManagement 到程序入口类中,事务的具体用法可参考Spring Trasaction。
JmsOperations为JmsTemplate的实现接口。
重要:不设置setReceiveTimeout时,当队列为空,从队列中取出消息的方法将会一直挂起直到队列内有消息
可直接使用jmsOperations的convertAndSend(String, Object)方法,第一个参数为队列名称,第二个参数为需发送的对象。
重要:发送的对象需实现序列化接口
可直接使用jmsOperations的receiveAndConvert(String)方法,第一个参数为队列名称。
如需使用事务,只需在方法添加注解 @Transactional(value = "jmsTransactionManager") 即可。
有问题请留言
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)