Java 增加MDB';S实例

Java 增加MDB';S实例,java,jboss,jakarta-ee,ejb-3.0,jboss5.x,Java,Jboss,Jakarta Ee,Ejb 3.0,Jboss5.x,我正在使用JBoss5.1.x 我正在尝试增加我的mdb实例。 但是没有成功 一些代码: @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "destination", propertyValu

我正在使用JBoss5.1.x 我正在尝试增加我的mdb实例。 但是没有成功

一些代码:

@MessageDriven(activationConfig = 
{ @ActivationConfigProperty(propertyName = "destinationType", propertyValue =  
"javax.jms.Queue"), 
 @ActivationConfigProperty(propertyName = "destination", propertyValue = 
 Constants.QUEUE_LOOKUP), 
 @ActivationConfigProperty(propertyName = "maxSession", propertyValue = "50") 
} 

) 

public class ECMSDispatcherMdb implements MessageListener 
  { 
      ... 
   } 
现在,当我查看控制台管理时,在Queues\MyQueue树下:

 Consumer Count 1 The number of consumers on the queue 
 Message Count 0 The number of messages in the queue 
  • 消费者数量,保持为1
你知道怎么了吗?或者我没有正确配置什么

谢谢


ray。

MDB是通过创建一个实例并调用其
onMessage(..)
方法来处理的。那么,为什么需要更多的实例呢?

没有错。一切都很好。当MDB无事可做(队列中有0条消息)时,您不需要多个MDB实例

如果您希望看到多个实例,我相信您必须执行某种负载测试,以强制服务器创建其他实例。或者你可以做得更简单。将Thread.sleep(60000)添加到MDB。现在将2条消息推送到您的队列中


在这种情况下,处理每条消息需要1分钟,所以我猜服务器必须同时处理它们,这可能会迫使它创建额外的实例。

如果MDB使用实例变量怎么办?从两个单独的线程调用可能会导致冲突。不要使用实例变量:)我想在我的系统中有多个MDB实例在我的JMS QueBozho上并行工作,你是对的。我个人不使用它们,但这并不是规范Rayman所禁止的,正如Bozho所说,您实际上不需要几个实例来同时处理多条消息。试试我建议的测试,看看你们的信息是并行处理的,放松点,继续吧!那么为什么它在控制台中只显示1作为消费者的数量呢?