Java 如何在WildFly 10中动态更改JMS队列MDB池大小

Java 如何在WildFly 10中动态更改JMS队列MDB池大小,java,jms,wildfly,wildfly-10,activemq-artemis,Java,Jms,Wildfly,Wildfly 10,Activemq Artemis,我正在使用WildFly 10.1,它与Artemis一起作为新的JMS提供者提供,但我无法找到如何动态更改特定MDB的使用者线程数 我有一个队列,一个消息侦听器(MDB)使用队列中的消息,现在我想动态控制域必须启动的最大用户线程数 如何使用CLI执行此操作?如果要为特定的MDB执行此配置,可以首先将其分配给专用池。看 然后,为了动态更新池属性,您可以看看其中描述了如何使用jboss cli或standalone.xml配置配置或添加ejb3池。(使用JBoss7,但与Wildfly 10没有太

我正在使用WildFly 10.1,它与Artemis一起作为新的JMS提供者提供,但我无法找到如何动态更改特定MDB的使用者线程数

我有一个队列,一个消息侦听器(MDB)使用队列中的消息,现在我想动态控制域必须启动的最大用户线程数


如何使用CLI执行此操作?

如果要为特定的MDB执行此配置,可以首先将其分配给专用池。看

然后,为了动态更新池属性,您可以看看其中描述了如何使用jboss cli或standalone.xml配置配置或添加ejb3池。(使用JBoss7,但与Wildfly 10没有太大区别)

然后,可以使用以下jboss cli命令动态修改池大小,因为MDB的池大小默认为20:

/subsystem=ejb3/strict max-bean实例池=myPool:write属性(name=max-pool-size)


最后,您似乎还必须在MDB中相应地配置“maxSession”激活配置属性。有关上下文配置,请参见和。

我可以问一下,为什么要动态配置它吗?@Rémibanto这是一个好问题。主要原因是,在一些客户的变更过程中,推动QA和生产的新版本是一件痛苦的事情。整个过程可能需要数周时间,必须是手动的,并且由第三方执行(不,我不是开玩笑)。我宁愿保持微调的灵活性,这样我们就能够在不与变革部门打交道的情况下快速做出反应并完成工作。我过去在使用这种方法(使用WebLogic的工作管理器)方面有很好的经验。我能够使用max pool 50创建池,并将其与MDB关联,但当我向队列添加50条消息时,任何时候只有15条消息被使用(以前的默认值)。我使用此命令创建了池
/subsystem=ejb3/strict max bean instance pool=dummyPool/:add(最大池大小=50,超时=5,超时单位=MINUTES)
,并在MDB上使用了
@pool
注释甚至
jboss-ejb3.xml
,但服务器仍然将其限制为15个实例。
maxSession
激活是静态的。你知道会是什么吗?我还尝试重新启动服务器,但无效。我也找到了,但按照这些步骤,我的MDB无法使用自定义池工作。您是否尝试设置maxSession激活配置属性?有关maxSession上下文配置,请参阅此问题和相关答案: