JavaTM 2 Platform
Standard Ed. 6

javax.management.remote
類別 JMXConnectorServer

java.lang.Object
  繼承者 javax.management.NotificationBroadcasterSupport
      繼承者 javax.management.remote.JMXConnectorServer
所有已實作的介面:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, JMXAddressable, JMXConnectorServerMBean
直接已知子類別:
RMIConnectorServer

public abstract class JMXConnectorServer
extends NotificationBroadcasterSupport
implements JMXConnectorServerMBean, MBeanRegistration, JMXAddressable

每個連接器伺服器的父級類別。連接器伺服器連接到 MBean 伺服器。它偵聽客戶端連接請求並為每個請求創建連接。

連接器伺服器或者通過在該 MBean 伺服器上註冊該連接器伺服器,或者通過將 MBean 伺服器傳給其建構子來與 MBean 伺服器關聯。

連接器伺服器在創建時為非活動的。只有在調用了 start 方法後,它才開始偵聽客戶端連接。當調用了 stop 方法,或者將連接器伺服器從其 MBean 伺服器註銷後,連接器伺服器停止偵聽客戶端連接。

停止連接器伺服器並不會將它從其 MBean 伺服器註銷。連接器伺服器一旦停止就無法重新啟動。

客戶端連接每次建立或斷開都將發出一個類別 JMXConnectionNotification 的通知。

從以下版本開始:
1.5

欄位摘要
static String AUTHENTICATOR
          為連接器伺服器指定經驗證的屬性名稱。
 
建構子摘要
JMXConnectorServer()
          建構一個將註冊為連接到 MBean 伺服器的 MBean 的連接器伺服器。
JMXConnectorServer(MBeanServer mbeanServer)
          建構一個連接到給定 MBean 伺服器的連接器伺服器。
 
方法摘要
protected  void connectionClosed(String connectionId, String message, Object userData)
          正常關閉客戶端連接時由子類別調用。
protected  void connectionFailed(String connectionId, String message, Object userData)
          客戶端連接失敗時由子類別調用。
protected  void connectionOpened(String connectionId, String message, Object userData)
          打開新的客戶端連接時由子類別調用。
 String[] getConnectionIds()
          當前打開的到此連接器伺服器的連接 ID 列表。
 MBeanServer getMBeanServer()
          返回該連接器伺服器連接到的 MBean 伺服器。
 MBeanNotificationInfo[] getNotificationInfo()
          返回一個指示由該 MBean 發送的通知的陣列。
 void postDeregister()
          允許 MBean 在已從 MBean 伺服器註銷之後執行所需要的任何操作。
 void postRegister(Boolean registrationDone)
          允許 MBean 在被註冊到 MBean 伺服器或註銷失敗後執行任何所需要的操作。
 void preDeregister()
          當此連接器伺服器從 MBean 伺服器上註銷時,由該 MBean 伺服器調用此方法。
 ObjectName preRegister(MBeanServer mbs, ObjectName name)
          當此連接器伺服器在 MBean 伺服器上註冊時,由該 MBean 伺服器調用此方法。
 void setMBeanServerForwarder(MBeanServerForwarder mbsf)
          添加一個截取對 MBean 伺服器請求的物件,該請求是通過此連接器伺服器到達的。
 JMXConnector toJMXConnector(Map<String,?> env)
          返回此連接器伺服器的客戶端 stub。
 
從類別 javax.management.NotificationBroadcasterSupport 繼承的方法
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
從介面 javax.management.remote.JMXConnectorServerMBean 繼承的方法
getAddress, getAttributes, isActive, start, stop
 
從介面 javax.management.remote.JMXAddressable 繼承的方法
getAddress
 

欄位詳細資訊

AUTHENTICATOR

public static final String AUTHENTICATOR

為連接器伺服器指定經驗證的屬性名稱。此屬性關聯的值(如果有)必須是一個實作 JMXAuthenticator 介面的物件。

另請參見:
常數欄位值
建構子詳細資訊

JMXConnectorServer

public JMXConnectorServer()

建構一個將註冊為連接到 MBean 伺服器的 MBean 的連接器伺服器。此建構子通常由 createMBean 方法之一在創建(在 MBean 伺服器內)實作遠端可用的連接器伺服器時調用。


JMXConnectorServer

public JMXConnectorServer(MBeanServer mbeanServer)

建構一個連接到給定 MBean 伺服器的連接器伺服器。使用這樣的方法創建的連接器伺服器可註冊到一個不同的 MBean 伺服器上。

參數:
mbeanServer - 該連接器伺服器連接到的 MBean 伺服器。如果該連接器伺服器將通過註冊的方式連接到 MBean 伺服器,則為 Null。
方法詳細資訊

getMBeanServer

public MBeanServer getMBeanServer()

返回該連接器伺服器連接到的 MBean 伺服器。

返回:
該連接器伺服器連接到的 MBean 伺服器,或者如果尚未連接到 MBean 伺服器,則返回 null。

setMBeanServerForwarder

public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
從介面 JMXConnectorServerMBean 複製的描述

添加一個截取對 MBean 伺服器請求的物件,該請求是通過此連接器伺服器到達的。此物件將作為任何由此連接器伺服器創建的新連接的 MBeanServer 提供。現有連接不受影響。

如果此連接器伺服器已與一個 MBeanServer 物件關聯,則將該物件提供給 mbsf.setMBeanServer。如果這樣做產生異常,則該方法拋出相同的異常,沒有任何其他作用。

如果此連接器尚未與一個 MBeanServer 物件關聯,或者如果剛才提到的 mbsf.setMBeanServer 調用成功,則 mbsf 成為該連接器伺服器的 MBeanServer

指定者:
介面 JMXConnectorServerMBean 中的 setMBeanServerForwarder
參數:
mbsf - 新的 MBeanServerForwarder

getConnectionIds

public String[] getConnectionIds()
從介面 JMXConnectorServerMBean 複製的描述

當前打開的到此連接器伺服器的連接 ID 列表。

指定者:
介面 JMXConnectorServerMBean 中的 getConnectionIds
返回:
包含 ID 列表的新字元串陣列。如果當前沒有打開的連接,則此陣列將為空。

toJMXConnector

public JMXConnector toJMXConnector(Map<String,?> env)
                            throws IOException

返回此連接器伺服器的客戶端 stub。客戶端 stub 為一個可序列化的物件,其 connect 方法可用於建立一個到此連接器伺服器的新連接。

給定的連接器不必支持產生客戶端 stub。但是,由 JMX Remote API 指定的連接器必須支持產生客戶端 stub(JMXMP Connector 和 RMI Connector)。

此方法的預設實作使用 JMXConnectorServerMBean.getAddress()JMXConnectorFactory 產生 stub,其程式碼等效於:

 JMXServiceURL addr = getAddress();
 return JMXConnectorFactory.newJMXConnector(addr, env);
 

此程式碼不適用的連接器伺服器必須覆寫此方法,這樣或者實作適當的邏輯,或者拋出 UnsupportedOperationException

指定者:
介面 JMXConnectorServerMBean 中的 toJMXConnector
參數:
env - 客戶端連接參數,與提供給 JMXConnector.connect(Map) 的參數具有相同的型別。可以為 null,它等效於一個空映射。
返回:
可用於建立到此連接器伺服器的新連接的客戶端 stub。
拋出:
UnsupportedOperationException - 如果此連接器伺服器不支持產生客戶端 stub。
IllegalStateException - 如果 JMXConnectorServer 未啟動(請參閱 JMXConnectorServerMBean.isActive())。
IOException - 如果存在通信問題而導致無法創建 stub。

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()

返回一個指示由該 MBean 發送的通知的陣列。JMXConnectorServer 中的實作返回帶一個元素的陣列,這指示它可以發出在此類別中定義的型別的類別 JMXConnectionNotification 的通知。能夠發出其他通知的子類別應返回一個套件含該元素和對其他通知的描述的陣列。

指定者:
介面 NotificationBroadcaster 中的 getNotificationInfo
覆寫:
類別 NotificationBroadcasterSupport 中的 getNotificationInfo
返回:
可能的通知的陣列。

connectionOpened

protected void connectionOpened(String connectionId,
                                String message,
                                Object userData)

打開新的客戶端連接時由子類別調用。將由 getConnectionIds() 返回的 connectionId 添加到列表中,然後發出一個型別為 JMXConnectionNotification.OPENEDJMXConnectionNotification

參數:
connectionId - 新連接的 ID。它必須與任何由此連接器伺服器先前打開的連接的 ID 不一樣。
message - 發出的 JMXConnectionNotification 的訊息。可以為 null。請參閱 Notification.getMessage()
userData - 發出的 JMXConnectionNotificationuserData。可以為 null。請參閱 Notification.getUserData()
拋出:
NullPointerException - 如果 connectionId 為 null。

connectionClosed

protected void connectionClosed(String connectionId,
                                String message,
                                Object userData)

正常關閉客戶端連接時由子類別調用。從列表中移除由 getConnectionIds() 返回的 connectionId,然後發出一個型別為 JMXConnectionNotification.CLOSEDJMXConnectionNotification

參數:
connectionId - 已關閉連接的 ID。
message - 發出的 JMXConnectionNotification 的訊息。可以為 null。請參閱 Notification.getMessage()
userData - 發出的 JMXConnectionNotificationuserData。可以為 null。請參閱 Notification.getUserData()
拋出:
NullPointerException - 如果 connectionId 為 null。

connectionFailed

protected void connectionFailed(String connectionId,
                                String message,
                                Object userData)

客戶端連接失敗時由子類別調用。從列表中移除由 getConnectionIds() 返回的 connectionId,然後發出一個型別為 JMXConnectionNotification.FAILEDJMXConnectionNotification

參數:
connectionId - 失敗連接的 ID。
message - 發出的 JMXConnectionNotification 的訊息。可以為 null。請參閱 Notification.getMessage()
userData - 發出的 JMXConnectionNotificationuserData。可以為 null。請參閱 Notification.getUserData()
拋出:
NullPointerException - 如果 connectionId 為 null。

preRegister

public ObjectName preRegister(MBeanServer mbs,
                              ObjectName name)

當此連接器伺服器在 MBean 伺服器上註冊時,由該 MBean 伺服器調用此方法。此連接器伺服器連接到此 MBean 伺服器上且其 getMBeanServer() 方法將返回 mbs

如果該連接器伺服器已連接到 MBean 伺服器,則該方法沒有任何作用。它所連接到的 MBean 伺服器不一定就是所註冊的 MBean 伺服器。

指定者:
介面 MBeanRegistration 中的 preRegister
參數:
mbs - 該連接器伺服器註冊所在的 MBean 伺服器。
name - MBean 的物件名。
返回:
MBean 將註冊的名稱。
拋出:
NullPointerException - 如果 mbsname 為 null。

postRegister

public void postRegister(Boolean registrationDone)
從介面 MBeanRegistration 複製的描述
允許 MBean 在被註冊到 MBean 伺服器或註銷失敗後執行任何所需要的操作。

指定者:
介面 MBeanRegistration 中的 postRegister
參數:
registrationDone - 指示該 MBean 是否已在 MBean 伺服器中成功註冊。false 值意味著註冊階段已失敗。

preDeregister

public void preDeregister()
                   throws Exception

當此連接器伺服器從 MBean 伺服器上註銷時,由該 MBean 伺服器調用此方法。如果該連接器伺服器以註冊的方式連接到該 MBean 伺服器,並且如果該連接器伺服器仍為活動狀態,則註銷它將調用 stop 方法。如果 stop 方法拋出一個異常,則註銷嘗試將失敗。建議在註銷 MBean 之前顯式調用 stop 方法。

指定者:
介面 MBeanRegistration 中的 preDeregister
拋出:
IOException - 如果異常由 stop 方法拋出。
Exception - MBean 伺服器會捕捉此異常並以 MBeanRegistrationException 的形式重新拋出。

postDeregister

public void postDeregister()
從介面 MBeanRegistration 複製的描述
允許 MBean 在已從 MBean 伺服器註銷之後執行所需要的任何操作。

指定者:
介面 MBeanRegistration 中的 postDeregister

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only