2011-01-13 17 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
  • され続けます

何が間違っていますか?または私が正しく構成していないものは?

おかげで、

線。

答えて

0

MDBは、1つのインスタンスを作成し、そのonMessage(..)メソッドを呼び出すことによって処理されます。それではなぜもっと多くのインスタンスが必要ですか?

+0

MDBでインスタンス変数を使用する場合はどうなりますか? 2つの別々のスレッドから呼び出されると、競合が発生する可能性があります。 – AlexR

+0

インスタンス変数を使用していません:) – Bozho

+0

自分のシステムに複数のMDBインスタンスがあり、JMS Queueで並列に動作させたいと思った – rayman

1

何も間違っていません。すべて順調。何もしなくても(MDBのメッセージ数は0です)、MDBのインスタンスは2つ以上必要はありません。

いくつかのインスタンスを表示したい場合は、サーバーに追加のインスタンスを強制的に作成させるために何らかの負荷テストを実行する必要があると思います。それとも簡単にすることができますか? MDBにThread.sleep(60000)を追加します。今すぐあなたのキューに2つのメッセージを押してください。

この場合、各メッセージの処理には1分かかります。そのため、サーバーは同時に処理する必要があるため、追加のインスタンスを作成する必要があります。

+1

次に、コンシューマの数としてコンソールに1つしか表示されないのはなぜですか? – rayman