私のアプリケーションコード内でEJBを開始/停止できるかどうか誰かが知っていますか?例えば。アプリケーションの実行中に選択的に開始/停止したいMDBがいくつかありますか?何か案は?これはおそらくJMX経由で実行できますか?
乾杯!
私のアプリケーションコード内でEJBを開始/停止できるかどうか誰かが知っていますか?例えば。アプリケーションの実行中に選択的に開始/停止したいMDBがいくつかありますか?何か案は?これはおそらくJMX経由で実行できますか?
乾杯!
EJB仕様には、アプリケーション内の個々のEJB(またはモジュール)を開始/停止するメカニズムがありません。JSR77を介してJMXを使用してアプリケーションを動的に開始/停止することができます。
(jbossタグを使用しているようです。JBossの専門知識がないため、JBossが実行したいことをサポートする拡張機能を提供しているかどうかはわかりません。)
EJB は、「開始」または「停止」できるものではありません。確かに、それにはライフサイクルがありますが、それは EJBインスタンスの作成、アクティブ化、パッシベーション、および削除に関係しており、ライフサイクルを管理するのは完全に EJB コンテナ次第です。
つまり、EJB のライフサイクルをプログラムで管理することはできません。
デプロイされた各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を見つけたら、停止および開始操作を呼び出すことができます。これは、メッセージ配信を一時停止するために頻繁に使用されます。