小编Baz*_*zza的帖子

MQ 最大连接数问题

我有一个 Java 客户端,它通过 10 个连接连接到 MQ。这些在 Java 客户端运行期间保持打开状态。对于每个线程,我们创建一条消息,创建一个会话,发送消息并关闭会话。我们正在使用 Spring CachingConnectionFactory 并且 sessionCacheSize 为 100。我们的 MQ 工程团队告诉我们,我们的队列管理器的最大连接数为 500,我们已经超过了这个值。QM.ini 文件具有:

maxChannels=500
maxActiveChannels=256
maxHandles=256
Run Code Online (Sandbox Code Playgroud)

我在 MQ 资源管理器中观察到,队列上的打开输出计数保持静态为 10,但是如果我们跨 2 个队列进行负载平衡,则每个队列都是 10,即使我们仍然只有 10 个连接。那么我想知道的是 jms 连接和会话在 MQ 术语中等同于什么?

我确实认为连接等同于活动通道而会话是句柄,因此当我们打开(和关闭)的会话数量达到数百或数千时,我们可能会超过句柄,而我们只有 10连接。尽管与此相反,IBM 的技术说明“ JMS 连接工厂的连接池和会话池设置说明”中的以下片段表明最大通道应该大于最大会话,但是我们永远不知道这一点,因为它取决于负载(除非这应该大于 sessionCacheSize?)。

每个会话代表一个到队列管理器的 TCP/IP 连接。使用此处提到的设置,最多可以有 100 个 TCP/IP 连接。如果您正在使用 WebSphere MQ,那么将位于 qm.ini 文件中的队列管理器的 MaxChannels 设置调整为一个大于连接到队列的每个 JMS 连接工厂的最大可能会话数总和的值很重要经理。

任何关于如何最好地配置 MQ 的帮助将不胜感激。

java spring jms ibm-mq

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

ibm-mq ×1

java ×1

jms ×1

spring ×1