使用 JSR-160 連接器
對於遠端存取,Spring JMX 模組在 org.springframework.jmx.support
套件內提供兩個 FactoryBean
實作,用於建立伺服器端和用戶端連接器。
伺服器端連接器
為了讓 Spring JMX 建立、啟動和公開 JSR-160 JMXConnectorServer
,您可以使用以下組態
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean"/>
預設情況下,ConnectorServerFactoryBean
會建立繫結至 service:jmx:jmxmp://127.0.0.1:9875
的 JMXConnectorServer
。因此,serverConnector
bean 透過 localhost 上的 JMXMP 協定 (埠 9875) 向用戶端公開本機 MBeanServer
。請注意,JSR 160 規範將 JMXMP 協定標記為選用。目前,主要的開放原始碼 JMX 實作 MX4J 和 JDK 提供的實作都不支援 JMXMP。
若要指定另一個 URL 並向 MBeanServer
註冊 JMXConnectorServer
本身,您可以分別使用 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://127.0.0.1/jndi/rmi://127.0.0.1:1099/myconnector"/>
</bean>
如果設定了 ObjectName
屬性,Spring 會使用該 ObjectName
自動向 MBeanServer
註冊您的連接器。下列範例顯示您可以傳遞給 ConnectorServerFactoryBean
以建立 JMXConnector
的完整參數集
<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=iiop"/>
<property name="serviceUrl"
value="service:jmx:iiop://127.0.0.1/jndi/iiop://127.0.0.1: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://127.0.0.1/jndi/rmi://127.0.0.1:1099/jmxrmi"/>
</bean>
透過 Hessian 或 SOAP 的 JMX
JSR-160 允許擴充用戶端和伺服器之間進行通訊的方式。先前章節中顯示的範例使用 JSR-160 規範 (IIOP 和 JRMP) 和 (選用) JMXMP 所需的強制性基於 RMI 的實作。透過使用其他提供者或 JMX 實作 (例如 MX4J),您可以利用諸如 SOAP 或 Hessian over simple HTTP 或 SSL 等協定,如下列範例所示
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=burlap"/>
<property name="serviceUrl" value="service:jmx:burlap://127.0.0.1:9874"/>
</bean>
在先前的範例中,我們使用了 MX4J 3.0.0。如需更多資訊,請參閱官方 MX4J 文件。