当前位置:首页 » 存储配置 » ibmmq怎么配置

ibmmq怎么配置

发布时间: 2022-11-30 07:32:07

A. Spring Boot 与 IBM WebSphere MQ集成配置

[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 安装路径]javalib 下,Windows下的默认安装路径为 C:Program FilesIBMWebSphere 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") 即可。

有问题请留言

B. Redhat7安装IbmMq

机器建议使用红帽7版本,我用的是Redhat7.4版本,并配置Ip为192.168.53.185;将IBM_MQ_9.1_LINUX_X86-64.tar.gz上传至/root目录下

由于IBM MQ 7.1以后启用了增强的通道安全策略默认禁止mqm用户进行登录,需要设置一下.

说明:在添加地址访问认证权限时,可以指定宽泛的地址,如192.168.53.0,则代表一个子网

C. ibm组别添加成员

1、启动管理控制台。
2、浏览至要将IBMMQ服务器添加至的总线的总线成员列表。
3、单击服务集成->总线->bus_name->[拓扑]总线成员。
4、单击添加。将显示“添加新的总线成员”向导。选择要添加至总线的IBMMQ服务器:
5、选择IBMMQ服务器。
6、在下拉列表中,选择要添加的服务器。
7、单击下一步。
8、指定虚拟队列管理器名称。
9、将消息发送至IBMMQ时,IBMMQ网关队列管理器会将总线视为远程队列管理器。虚拟队列管理器名称将作为此远程队列管理器的名称传递至IBMMQ。缺省值是总线的名称。如果此值对于IBMMQ队列管理器并非有效名称,或者另一现有IBMMQ队列管理器具有相同名称,那么应将缺省值替换为另一个值,该值是对IBMMQ队列管理器有效的唯一名称。该名称必须符合以下条件才有效:
10、它必须包含1到48个字符。
11、它必须遵循IBMMQ队列命名规则(请参阅IBMMQ信息中心中的“IBMMQ对象的命名规则”主题)。
12、要覆盖服务器连接设置,请选择覆盖IBMMQ服务器连接属性复选框。选择此选项时,服务器的连接属性变为可用,所以您可将它们更改为特定于此总线成员的设置。有关这些连接属性的更多信息,请参阅IBMMQ服务器总线成员[设置]。
13、如果已更改服务器连接设置,可单击测试连接来测试与相关IBMMQ网络的连接。
14、单击下一步。
15、单击完成以进行确认。
16、将更改保存至主配置。

D. 通过命令行配置IBM MQ

amqsget 应用读完消息30秒后会结束

参考资料: https://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_8.0.0/com.ibm.mq.pro.doc/q121700_.htm

E. 如何正确设置IBM WebSphere MQ 实现群发消息

1.现在的问题是建立了共享队列INPUTQ 后,在QMGRI里面压根看不到共享队列。。
谁能告诉我为什么么?

大哥你怎么看的?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.

F. ibmmq无法更新注册表值

原因如下:
1、如果配置了MQ以使运行该服务的用户不在本地mqm组中,则可能会导致此问题,尽管那不是一件好事,所以可能要修复它,要解决此问题,您将显示一个提升权限的命令提示符并发出。
2、在Windows更新后,该更新重置了MQ安装先前已更新的键上的注册表权限,从而阻止了队列管理器启动时对其进行更新。

热点内容
gdb调试文件夹 发布:2024-05-07 04:03:25 浏览:153
玩5款大型游戏需要什么配置 发布:2024-05-07 03:59:09 浏览:89
什么安卓游戏画面炫酷 发布:2024-05-07 03:58:18 浏览:73
无锡五洋赛德压缩机有限公司 发布:2024-05-07 03:28:05 浏览:152
安卓手机如何打开qrs 发布:2024-05-07 03:18:31 浏览:466
c语言给数组排序 发布:2024-05-07 03:18:30 浏览:76
职工个人所得税登录密码是多少 发布:2024-05-07 03:14:22 浏览:707
编译程序组成部分 发布:2024-05-07 03:02:07 浏览:97
服务器怎么做双机 发布:2024-05-07 02:37:25 浏览:36
ftp剪切 发布:2024-05-07 02:37:14 浏览:138