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>