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

How to dynamically change JMS queue MDB pool size in WildFly 10

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

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

如何使用 CLI 执行此操作?

如果您想为 特定的 MDB 执行此配置,您可以首先将其分配给专用池。参见 this answer

然后要动态更新您的池属性,您可以查看 this article,其中描述了如何使用 jboss-cli 或 standalone.xml 配置来配置或添加 ejb3 池。 (用JBOSS7,但用Wildfly 10应该差别不大)

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

/subsystem=ejb3/strict-max-bean-instance-pool=myPool:write-attribute(name=max-pool-size)

最后,您似乎还必须在 MDB 中相应地配置 'maxSession' 激活配置 属性。有关上下文配置,请参阅 this thread and also