2011-01-13 95 views
0

我正在使用jboss 5.1.x 我想增加我的mdb實例。 但沒有成功。增加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 
    { 
     ... 
    } 

現在,當我看控制檯管理員,隊列\ myQueue中樹下:

Consumer Count 1 The number of consumers on the queue 
Message Count 0 The number of messages in the queue 
  • 消費者計數,保持暫時只有1

任何想法是什麼錯?或者我沒有配置的權利?

謝謝,

ray。

回答

0

通過創建一個實例並調用onMessage(..)方法來處理MDB。那麼爲什麼你需要更多的實例呢?

+0

如果MDB使用實例變量會怎麼樣?從2個獨立的線程調用它可能會導致衝突。 – AlexR

+0

不使用實例變量:) – Bozho

+0

我想在我的系統中有多於一個的MDB實例在我的JMS Que上並行工作 – rayman

1

沒有錯。一切安好。當他們無事可做時,您不需要多個MDB實例(隊列中有0條消息)。

如果您希望看到多個實例,我相信您必須執行某種負載測試來強制服務器創建其他實例。或者你可以做得更容易。將Thread.sleep(60000)添加到您的MDB。現在將2條消息推送到您的隊列中。

在這種情況下,每個消息的處理將花費1分鐘,所以我猜服務器將不得不同時處理它們,這可能會迫使它創建額外的實例。

+1

那麼爲什麼它在控制檯中只顯示1個消費者的數量? – rayman