为什么JBoss EAP 7
仅用Active MQ
创建一个消费者(而不是Artemis
)?如何增加消费者数量?
我尝试过:
ActivationConfigProperty
bean-instance-pools
标签)connection-definition
标签内设置最小/最大池大小我的配置:
mdb池配置
<subsystem xmlns="urn:jboss:domain:ejb3:5.0">
...
<mdb>
<resource-adapter-ref resource-adapter-name="com.icl.amq.jmsra.rar"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool" max-pool-size="5" instance-acquisition-timeout="10" instance-acquisition-timeout-unit="MINUTES"/>
<strict-max-pool name="mdb-strict-max-pool" max-pool-size="40" instance-acquisition-timeout="10" instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
...
资源适配器配置
<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
...
<resource-adapter id="amq.jmsra.main">
...
<connection-definitions>
<connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="${amq.jndi.factory}" enabled="true" pool-name="ConnectionFactory">
<xa-pool>
<min-pool-size>10</min-pool-size>
<initial-pool-size>10</initial-pool-size>
<max-pool-size>35</max-pool-size>
</xa-pool>
</connection-definition>
</connection-definitions>
</resource-adapter>
...
MDB代码:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "connectionFactoryLookup", propertyValue = "${amq.jndi.factory}"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "in_queue"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName="minSessions", propertyValue="5"),
@ActivationConfigProperty(propertyName="maxSessions", propertyValue="40")
})
@ResourceAdapter("amq.jmsra.main")
public class ServerMessageListener implements MessageListener {
...
我希望此配置会增加使用方数量,但是从ActiveMQ
Web控制台查看队列状态时,我只会看到1个使用方。
答案 0 :(得分:0)
在我看来,根据ActiveMQ JCA RA的源代码,将根据消息吞吐量按需创建会话,直到maxSessions
。因此,如果您只是启动MDB而没有消息被使用,那么我希望只有1个会话处于活动状态。
尝试将Thread.sleep(5000);
放入MDB的onMessage()
中,然后将数千条消息推入其侦听队列中。我敢打赌,随着JCA RA被迫创建新的会话来满足需求,用户数量将会增加。