Spring JMS:DefaultMessageListenerContainer:比预期更多的TCP / IP连接

我们使用Spring的DefaultMessageListenerContainer提取和处理MQ通知来解决生产中的问题。

我们认为基础TCP / IP连接的数量可能是个问题。

我需要更好地了解IBM MQ客户端和Spring JMS如何创建TCP / IP连接。

详细信息:

我们正在使用DefaultMessageListenerContainer从IBM MQ中提取消息。 我们正在使用SingleConnectionFactory使用一个共享的JMS连接,并正在使用CACHE_SESSION每个线程拥有一个JMS会话。 将concurrentConsumers设置为10,将maxConcurrentConsumers设置为20

我希望在负载为20 maxConcurrentConsumers的高负载下,我们将有20条打开的TCP / IP连接到队列管理器,但似乎比这还要高。我当时以为每个JMS会话只有一个TCP / IP连接,但是我认为这是一个有缺陷的理解。

(实际上,我们有5个不同的MQ通道来使用和应用10-20个使用者的相同配置,并且在正常音量下坐拥330个TCP / IP连接。随着时间的流逝,我会一直对此趋势发展,但我相信它会在另外,在5个MQ通道中,有2个通道的容量比其他3个通道的容量大,这些是我需要关注的通道,我需要集中精力并增加这些通道,同时可能减少其他通道,但是接下来的效果将大致相同) / p>

我们目前正在测试各种配置选项并进行负载测试,以了解我们可以发现的内容。

主要问题似乎是,我们可能说了10分钟,在那里我们无法处理任何事情,然后我们会自动恢复,但是数量如此之多,以至于我们需要很长时间才能恢复最新状态,这会影响SLA。

具体来说,我们整天都会看到类似以下的错误:

JMSCMQ0001 IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2538' ('MQRC_HOST_NOT_AVAILABLE')

Spring恢复输出“成功刷新JMS连接”,但是如上所述,我们每周遇到几次这种情况,因此MQ消息的数量无法赶上maxConcurrentConsumers

funnydoing 回答:Spring JMS:DefaultMessageListenerContainer:比预期更多的TCP / IP连接

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3165059.html

大家都在问