JBoss4.2.2でWebアプリケーションを実行しています。パフォーマンスを監視するために、Java 5に同梱されている内部プラットフォームのJMXサーバーを有効にしました。つまり、次のように追加しました。
-Dcom.sun.management.jmxremote
JBossの起動スクリプトに。これは期待どおりに機能します。ただし、この結果、すべてのMBeanがプラットフォームMBeanServerに登録されるようになりました。それは望ましくありません。JBossのMBeanServerに登録してもらいたいのです。
難しいのは、Springを使用してマネージドBeanを登録していることです。このために、MBeanExporter
が使用されます。したがって、MBeanExporter
Beanを登録するときにJBossのMBeanServerを使用するように指示する必要があります。ただし、MBeanExporter
使用されるサーバーに影響を与える唯一の公開されたメソッドはですsetServer(MBeanServer mBeanServer)
。問題は、プログラムで正しいMBeanServerへの参照を取得する方法しか知らないことであり、MBeanExporter
が宣言されているSpringのXMLではわかりません。
私のオプションは次のようです:
- サブクラスを
MBeanExporter
に書き込み、特定のメソッドをオーバーライドして、正しいMBeanServerがロードされるようにします PostBeanProcessor
JBossのMBeanServerを見つけて呼び出すsetServer
- JNDI?MBeanServerがJNDIで公開されている場合にのみ機能し、私はそれを見つけることができませんでした。
最も慣用的な方法は何ですか?私は本当にばかげたことをしていますか?