1

私のアプリケーションコード内でEJBを開始/停止できるかどうか誰かが知っていますか?例えば。アプリケーションの実行中に選択的に開始/停止したいMDBがいくつかありますか?何か案は?これはおそらくJMX経由で実行できますか?

乾杯!

4

3 に答える 3

1

EJB仕様には、アプリケーション内の個々のEJB(またはモジュール)を開始/停止するメカニズムがありません。JSR77を介してJMXを使用してアプリケーションを動的に開始/停止することができます。

(jbossタグを使用しているようです。JBossの専門知識がないため、JBossが実行したいことをサポートする拡張機能を提供しているかどうかはわかりません。)

于 2012-05-14T14:10:05.717 に答える
1

EJB は、「開始」または「停止」できるものではありません。確かに、それにはライフサイクルがありますが、それは EJBインスタンスの作成、アクティブ化、パッシベーション、および削除に関係しており、ライフサイクルを管理するのは完全に EJB コンテナ次第です。

つまり、EJB のライフサイクルをプログラムで管理することはできません。

于 2012-05-14T14:26:45.807 に答える
0

デプロイされた各MDBには、管理MBeanがあります。MBeanクラスはorg.jboss.ejb3.mdb.MdbDelegateWrapperです。JMX ObjectNameは、JBoss 4のバージョンによって異なり、デプロイ方法によって異なります。myapp.ear という耳にあるmyapp.jarというjarにMyMDBというMDBをデプロイしたとすると、名前は次のようになります。

jboss.j2ee:ear=myapp.ear,jar=myapp.jar,name=MyMDB,service=EJB3

古いバージョンのJBoss4にもシステムハッシュコードが含まれていました。また、EJB3を使用していない場合でも、サービスは引き続き存在し、EJB2のみになると思います

とにかく、管理Beanを見つけたら、停止および開始操作を呼び出すことができます。これは、メッセージ配信を一時停止するために頻繁に使用されます。

于 2012-05-15T18:39:02.633 に答える