我正在使用与 Artemis 作为新 JMS 提供程序一起提供的 WildFly 10.1,但我无法找到如何动态更改特定 MDB 的消费者线程数。
我有一个队列和一个消息侦听器 (MDB) 从队列中消费消息,现在我想动态控制域必须启动的最大消费者线程数。
我怎样才能使用 CLI 做到这一点?
我正在使用与 Artemis 作为新 JMS 提供程序一起提供的 WildFly 10.1,但我无法找到如何动态更改特定 MDB 的消费者线程数。
我有一个队列和一个消息侦听器 (MDB) 从队列中消费消息,现在我想动态控制域必须启动的最大消费者线程数。
我怎样才能使用 CLI 做到这一点?
当您想为特定MDB 执行此配置时,您可以首先将其分配给专用池。看到这个答案。
然后动态更新您的池属性,您可以查看这篇文章,它描述了如何使用 jboss-cli 或standalone.xml 配置来配置或添加 ejb3 池。(使用 JBOSS 7,但与 Wildfly 10 应该没有太大区别)
然后可以使用以下 jboss-cli 命令动态修改池大小,因为它对于 MDB 的默认值为 20:
/subsystem=ejb3/strict-max-bean-instance-pool=myPool:write-attribute(name=max-pool-size)
最后,您似乎还必须在 MDB 中相应地配置“maxSession”激活配置属性。有关上下文配置,请参阅此线程以及此问题。