170.3.3. Java VM での MBeanServer の検索
各 CamelContext には InstrumentationAgent のインスタンスが InstrumentationLifecycleStrategy 内でラップされます。InstrumentationAgent は、Camel MBean を登録するために MBeanServer とインターフェースするオブジェクトです。複数の CamelContext / InstrumentationAgent は MBean サーバーを共有することができます。デフォルトでは、Camel ランタイムは org.apache.camel のデフォルトのドメイン名に一致する MBeanServer Factory.findMBeanServer メソッド によって返される最初の MBeanServer を選択します。
アプリケーションですでに使用している MBeanServer インスタンスに一致するように、デフォルトのドメイン名を変更する必要がある場合があります。特に、MBeanServer が JMX コネクターサーバーに割り当てられている場合は、Camel でコネクターサーバーを作成する必要はありません。
システムプロパティーを使用して、一致するデフォルトドメイン名を設定できます。
-Dorg.apache.camel.jmx.mbeanServerDefaultDomain=<your.domain.name>
または、Spring 設定の camelContext 要素内に jmxAgent 要素を追加します。
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<jmxAgent id="agent" mbeanServerDefaultDomain="your.domain.name"/>
...
</camelContext>
一致する MBeanServer が見つからない場合は、新しい MBeanServer が作成され、上記のデフォルト設定に従って新しい「MBeanServer」のデフォルトドメイン名が設定されます。
また、システムプロパティーを設定して JVM MBean を管理する必要がある場合は、PlatformMBeanServer を使用することもできます。MBeanServer のデフォルトドメイン名設定は該当しないためは無視されます。
次回のリリース(1.5)より、usePlatformMBeanServer のデフォルト値は true に変わります。プラットフォーム MBeanServer を使用すると、プロパティーを false に設定すると無効にできます。
-Dorg.apache.camel.jmx.usePlatformMBeanServer=True
または、Spring 設定の camelContext 要素内に jmxAgent 要素を追加します。
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<jmxAgent id="agent" usePlatformMBeanServer="true"/>
...
</camelContext>