我正在使用在 Wildfly 14 中部署的 Spring-Boot-WAR,并实现了一个连接到队列的 JmsListener。JmsListener 已将并发设置为 5,当 Spring-App 独立启动时,我看到 5 个并行工作的侦听器。但是结合 Wildfly 14,只有 1 个监听器在运行。
在 JEE 中,我将使用 @Pool 注释 MessageDrivenBean,然后可以为给定池配置最大池大小。但我认为 Spring-Listener 只是连接到大小为 1 的默认 MDB-Pool。
有没有办法将 JmsListener 与特定的 bean-instance-pool 连接起来?或者有没有其他方法可以为这个 JmsListener 定义一个单独的最大池大小?
独立的.xml
<subsystem xmlns="urn:jboss:domain:ejb3:5.0">
...
<pools>
<bean-instance-pools>
...
<strict-max-pool name="individual-strict-max-pool" max-pool-size="5" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
消息监听器
@JmsListener(destination = JMS_MESSAGE_NAME, concurrency = "5")
public void receiveFromMessageQueue(Message msg) {
...
}