activemq:超过了允许的最大客户端连接数

ee7vknir  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(465)

在我的.net应用程序中,所有组件都与activemq交互,但在处理了一些消息后,它开始发出错误:
“无法接受连接:org.apache.activemq.transport.tcp.exceedMaximumConnectionsException:超出了允许的最大客户端连接数。”。
我增加了web配置中的最大连接数,但它不起作用。我听说对于这个场景,应该使用pooledconnectionfactory。你们能建议我们如何实现pooledconnectionfactory吗?或者有其他替代方案吗。
提前谢谢!!

8wigbo56

8wigbo561#

在生成消息时尝试以某种方式重用您的连接。例如,保持一个开放的连接,而不是为每条消息打开/关闭。
spring.net中提供了一个cachingconnectionfactory,可以简化此任务。

h22fl7wq

h22fl7wq2#

首先,您可以在代理传输连接器配置中配置代理将接受多少连接,例如在activemq.xml中

<transportConnectors>
  <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000"/>
</transportConnectors>

1000个连接应该是activemq的apache发行版中配置的默认限制。除非您有一个出乎意料的低限制,否则您可能正在泄漏客户端应用程序中的连接,这应该很容易使用netstat之类的命令进行验证。
我不是activemq nmsMaven,但据我所知,.net没有pooledconnectionfactory
http://activemq.apache.org/nms/msdoc/1.6.0/vs2005/output/html/n_apache_nms.htm
这仅适用于java。前面的回答是正确的,您应该尝试重新使用到代理的现有连接。创建连接被认为是一项繁重的操作。每次重新创建连接都是一种反模式,泄漏连接当然是一个bug。

相关问题