3

JBoss4.2.2でWebアプリケーションを実行しています。パフォーマンスを監視するために、Java 5に同梱されている内部プラットフォームのJMXサーバーを有効にしました。つまり、次のように追加しました。

-Dcom.sun.management.jmxremote

JBossの起動スクリプトに。これは期待どおりに機能します。ただし、この結果、すべてのMBeanがプラットフォームMBeanServerに登録されるようになりました。それは望ましくありません。JBossのMBeanServerに登録してもらいたいのです。

難しいのは、Springを使用してマネージドBeanを登録していることです。このために、MBeanExporterが使用されます。したがって、MBeanExporterBeanを登録するときにJBossのMBeanServerを使用するように指示する必要があります。ただし、MBeanExporter使用されるサーバーに影響を与える唯一の公開されたメソッドはですsetServer(MBeanServer mBeanServer)問題は、プログラムで正しいMBeanServerへの参照を取得する方法しか知らないことであり、MBeanExporterが宣言されているSpringのXMLではわかりません。

私のオプションは次のようです:

  1. サブクラスをMBeanExporterに書き込み、特定のメソッドをオーバーライドして、正しいMBeanServerがロードされるようにします
  2. PostBeanProcessorJBossのMBeanServerを見つけて呼び出すsetServer
  3. JNDI?MBeanServerがJNDIで公開されている場合にのみ機能し、私はそれを見つけることができませんでした。

最も慣用的な方法は何ですか?私は本当にばかげたことをしていますか?

4

2 に答える 2

6

JBoss API の静的ファクトリ メソッドを使用して、MBeanServer を MBeanExporter に注入できます。

<bean class="org.springframework.jmx.export.MBeanExporter">
    <property name="server">
        <bean class="org.jboss.mx.util.MBeanServerLocator" factory-method="locateJBoss"/>
    </property>
    <!-- Add the rest of your MBeanExporter properties here -->
</bean>
于 2009-08-18T15:25:13.630 に答える
0

問題は、正しい MBeanServer への参照をプログラムで取得する方法しか知らないことです。

プログラムで参照を取得できる場合、MBeanExporter#server プロパティを介して接続できないのはなぜですか?

于 2009-08-18T15:03:57.260 に答える