Jms Wildfly 10最终无限期创建ActiveMQ客户端全局线程

Jms Wildfly 10最终无限期创建ActiveMQ客户端全局线程,jms,activemq,jconsole,wildfly-10,Jms,Activemq,Jconsole,Wildfly 10,我有一个JMS的Wildfly-AS设置,I;我用Jconsole监控它,并注意到在我的消费者或生产者上创建会话之前,线程数一直在稳步增加,我以前使用的Wildfly 9 final也是出于同样的目的,即使在使用过程中,它的线程使用也一直是稳定的,但它有一个内存泄漏,这促使我升级 在Jconsole中,我可以看到: Thread-2(ActiveMQ-client-global-threads-3258368) Thread-4(ActiveMQ-client-global-threads-32

我有一个JMS的
Wildfly-AS
设置,I;我用Jconsole监控它,并注意到在我的
消费者
生产者
上创建会话之前,线程数一直在稳步增加,我以前使用的
Wildfly 9 final
也是出于同样的目的,即使在使用过程中,它的线程使用也一直是稳定的,但它有一个内存泄漏,这促使我升级

Jconsole
中,我可以看到:

Thread-2(ActiveMQ-client-global-threads-3258368)
Thread-4(ActiveMQ-client-global-threads-3258368)
Thread-5(ActiveMQ-client-global-threads-3258368)
Thread-6(ActiveMQ-client-global-threads-3258368)
.
.
.
Thread-16(ActiveMQ-client-global-threads-3258368)
我如何解决这个问题?我是否可以更改导致这些线程生成的设置,是否可以从
Jconsole
获取更多信息来帮助我解决此问题

更新: 我尝试过这种配置,但它不适合我。 原因是ActiveMq Artemis使用固定的线程池执行器,并将其配置为500个线程。在阿尔忒弥斯的一些变化之后,它将在Wildfly中得到解决。 您可以在Jira中检查状态(查看最后的注释):

论坛:

解决方法:

sh standalone.sh -c standalone-full.xml -Dactivemq.artemis.client.global.thread.pool.max.size=30

原始答复:

您是否尝试过设置远程连接属性

 <connection-factory name="RemoteConnectionFactory"
 entries="java:jboss/exported/jms/RemoteConnectionFactory"
 connectors="http-connector" use-global-pools="false"
 thread-pool-max-size="10"/>

您可以针对特定用例微调MDB,只需根据预期限制将属性
UseGlobalTools
设置为false和
threadPoolMaxSize

@MessageDriven(activationConfig = { 
    @ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "queue/emailQueue"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
    @ActivationConfigProperty(propertyName = "useGlobalPools", propertyValue = "false"),
    @ActivationConfigProperty(propertyName = "threadPoolMaxSize", propertyValue = "20"),
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
如果设置连接工厂属性,请使用global pools=“false”和
thread pool max size=“20”
在standalone.xml中,甚至作为VM参数传递,您将对所有MDB应用全局行为,这可能不是一个好主意。

我也有同样的问题。。。你解决了这个问题吗?这是我在Jboss论坛上得到的解决方案,我本来打算回来回答这个问题,你帮我省去了麻烦,谢谢你的投入。嗨,约翰,我在与wildfly团队交谈后更新了答案。考虑到这个解决方案确实为我解决了问题,我使用的是wildfly 10 CR4Ok Johntk!我试过了,但我解决不了我的问题。。。但是这个参数对我来说是有效的:sh standalone.sh-c standalone-full.xml-Dactivemq.artemis.client.global.thread.pool.max.size=30只是想说明我们在Wildfly 10上遇到了与artemis占用内存相同的问题。我们通过将
artemis-thread.pool.max.size
添加到wildfly/bin/standalone.conf
解决了这个问题。在默认的
if`block checking for Java options中,我们添加了,
Java_OPTS=“$Java_OPTS-Dactivemq.artemis.client.global.thread.pool.max.size=100”