JSR-160 コネクターの使用
リモートアクセスの場合、Spring JMX モジュールは、サーバー側とクライアント側の両方のコネクターを作成するために、org.springframework.jmx.support
パッケージ内に 2 つの FactoryBean
実装を提供します。
サーバー側のコネクター
Spring JMX で JSR-160 JMXConnectorServer
を作成、開始、公開するには、次の構成を使用できます。
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean"/>
デフォルトでは、ConnectorServerFactoryBean
は service:jmx:jmxmp://localhost:9875
にバインドされた JMXConnectorServer
を作成します。serverConnector
Bean は、ローカルホスト、ポート 9875 の JMXMP プロトコルを介して、クライアントにローカル MBeanServer
を公開します。JMXMP プロトコルは、JSR 160 仕様でオプションとしてマークされていることに注意してください。現在、メインのオープンソース JMX 実装である MX4J および JDK で提供されている実装は、JMXMP をサポートしていません。
別の URL を指定し、JMXConnectorServer
自体を MBeanServer
に登録するには、次の例に示すように、それぞれ serviceUrl
および ObjectName
プロパティを使用できます。
<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=rmi"/>
<property name="serviceUrl"
value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/myconnector"/>
</bean>
ObjectName
プロパティが設定されている場合、Spring はその ObjectName
の MBeanServer
にコネクターを自動的に登録します。次の例は、JMXConnector
を作成するときに ConnectorServerFactoryBean
に渡すことができるパラメーターの完全なセットを示しています。
<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=iiop"/>
<property name="serviceUrl"
value="service:jmx:iiop://localhost/jndi/iiop://localhost:900/myconnector"/>
<property name="threaded" value="true"/>
<property name="daemon" value="true"/>
<property name="environment">
<map>
<entry key="someKey" value="someValue"/>
</map>
</property>
</bean>
RMI ベースのコネクターを使用する場合、名前の登録を完了するには、ルックアップサービス (tnameserv
または rmiregistry
) を開始する必要があることに注意してください。
クライアント側のコネクター
リモート JSR-160 対応 MBeanServer
に MBeanServerConnection
を作成するには、次の例に示すように、MBeanServerConnectionFactoryBean
を使用できます。
<bean id="clientConnector" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
<property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/jmxrmi"/>
</bean>
Hessian または SOAP を介した JMX
JSR-160 は、クライアントとサーバーの間で通信が行われる方法の拡張を許可します。前のセクションで示した例では、JSR-160 仕様(IIOP および JRMP)および(オプションの)JMXMP で必要な必須の RMI ベースの実装を使用しています。次の例に示すように、他のプロバイダーまたは JMX 実装(MX4J (英語) など)を使用することにより、単純な HTTP または SSL などを介して SOAP または Hessian などのプロトコルを利用できます。
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=burlap"/>
<property name="serviceUrl" value="service:jmx:burlap://localhost:9874"/>
</bean>
前の例では、MX4J 3.0.0 を使用しました。詳細については、MX4J の公式ドキュメントを参照してください。