JavaTM 2 Platform
Standard Ed. 6

javax.management.remote
介面 JMXConnector

所有父級介面:
Closeable
所有已知實作類別:
RMIConnector

public interface JMXConnector
extends Closeable

JMX API 連接器的客戶端。使用此型別的物件可建立到連接器伺服器的連接。

新創建的此型別物件尚未連接。在此物件能夠使用之前,必須調用其 connect 方法。但是,由 JMXConnectorFactory.connect 創建的物件已經連接。

從以下版本開始:
1.5

欄位摘要
static String CREDENTIALS
          屬性的名稱,它指定了連接過程中發送給連接器伺服器的憑據。
 
方法摘要
 void addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          添加一個接收連接狀態改變的偵聽器。
 void close()
          關閉客戶端到其伺服器的連接。
 void connect()
          建立到連接器伺服器的連接。
 void connect(Map<String,?> env)
          建立到連接器伺服器的連接。
 String getConnectionId()
          獲得來自連接器伺服器的連接 ID。
 MBeanServerConnection getMBeanServerConnection()
          返回一個代表遠端 MBean 伺服器的 MBeanServerConnection 物件。
 MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
          返回 MBeanServerConnection 物件,它表示在其上執行代表提供的委託主題操作的遠端 MBean 伺服器。
 void removeConnectionNotificationListener(NotificationListener listener)
          將一個用於接收狀態更改通知的偵聽器從列表中移除。
 void removeConnectionNotificationListener(NotificationListener l, NotificationFilter f, Object handback)
          將一個用於接收狀態更改通知的偵聽器從列表中移除。
 

欄位詳細資訊

CREDENTIALS

static final String CREDENTIALS

屬性的名稱,它指定了連接過程中發送給連接器伺服器的憑據。與此屬性關聯的值(如果有)為伺服器的 JMXAuthenticator 的具有適當型別的可序列化的物件。

另請參見:
常數欄位值
方法詳細資訊

connect

void connect()
             throws IOException

建立到連接器伺服器的連接。此方法等效於 connect(null)

拋出:
IOException - 如果由於存在通信問題而導致無法建立連接。
SecurityException - 如果由於安全原因而無法建立連接。

connect

void connect(Map<String,?> env)
             throws IOException

建立到連接器伺服器的連接。

如果已在該物件上成功調用了 connect,則再次調用將沒有任何作用。但是,如果 close() 是在調用 connect 之後調用的,則新的 connect 將拋出 IOException

否則,在此物件上未調用過任何一個 connect,或者雖然調用過但產生了一個異常。然後對 connect 的調用將試圖建立到連接器伺服器的連接。

參數:
env - 連接的屬性。此映射中的屬性覆寫創建 JMXConnector 時指定的映射中的屬性(如果有)。此參數可以為 null,其等效於一個空映射。
拋出:
IOException - 如果由於存在通信問題而導致無法建立連接。
SecurityException - 如果由於安全原因而無法建立連接。

getMBeanServerConnection

MBeanServerConnection getMBeanServerConnection()
                                               throws IOException

返回一個代表遠端 MBean 伺服器的 MBeanServerConnection 物件。對於給定的 JMXConnector,對此方法兩次成功的調用通常將返回相同的 MBeanServerConnection 物件,儘管不需要這樣做。

對於返回的 MBeanServerConnection 中的每個方法,調用該方法將導致調用遠端 MBean 伺服器中的相應方法。MBean 伺服器方法返回的值就是返回給客戶端的值。如果 MBean 伺服器方法產生了 Exception,則客戶端上也會出現相同的 Exception。如果 MBean 伺服器方法(或嘗試對它的調用)產生了 Error,則該 Error 將包裹在 JMXServerErrorException 中,從客戶端能夠看到該錯誤。

調用該方法等效於調用 getMBeanServerConnection(null),這意味著未指定任何委託主題並且在 MBeanServerConnection 上調用的所有操作必須使用經驗證的主題(如果有)。

返回:
一個通過將其方法轉發到遠端 MBean 伺服器而實作 MBeanServerConnection 介面的物件。
拋出:
IOException - 如果無法創建有效的 MBeanServerConnection,例如,由於尚未建立到遠端 MBean 伺服器的連接(用 connect 方法),或者連接已關閉,或者連接已斷開。

getMBeanServerConnection

MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
                                               throws IOException

返回 MBeanServerConnection 物件,它表示在其上執行代表提供的委託主題操作的遠端 MBean 伺服器。對於給定的 JMXConnectorSubject,對此方法兩次成功的調用通常將返回相同的 MBeanServerConnection 物件,儘管不需要這樣做。

對於返回的 MBeanServerConnection 中的每個方法,調用此方法導致調用代表給定委託主題,而不是經驗證主題的遠端 MBean 伺服器上的對應方法。MBean 伺服器方法返回的值就是返回給客戶端的值。如果 MBean 伺服器方法產生了 Exception,則客戶端上也會出現相同的 Exception。如果 MBean 伺服器方法(或嘗試對它的調用)產生了 Error,則該 Error 將包裹在 JMXServerErrorException 中,從客戶端能夠看到該錯誤。

參數:
delegationSubject - 代表將執行何種請求的 Subject。可以為 null,這種情況下執行請求表示經驗證的 Subject(如果有)。
返回:
一個通過將其方法轉發到代表給定委託主題的遠端 MBean 伺服器而實作 MBeanServerConnection 介面的物件。
拋出:
IOException - 如果無法創建有效的 MBeanServerConnection,例如,由於尚未建立到遠端 MBean 伺服器的連接(用 connect 方法),或者連接已關閉,或者連接已斷開。

close

void close()
           throws IOException

關閉客戶端到其伺服器的連接。任何正在進行中的或新的使用由 getMBeanServerConnection() 返回的 MBeanServerConnection 的請求將獲得一個 IOException

如果已在該物件上成功調用了 close,則再次調用將沒有任何作用。如果從未調用過 close,或者調用過但產生了異常,則將嘗試關閉該連接。此嘗試可能成功,此時 close 將正常返回,也可能產生一個異常。

關閉連接是一個潛在的慢操作。例如,假設伺服器已崩潰,則關閉操作可能不得不等待網路協議逾時。不希望關閉操作出現阻塞的調用者應在單獨的執行緒中處理關閉。

指定者:
介面 Closeable 中的 close
拋出:
IOException - 如果無法完全關閉連接。如果拋出此異常,連接的伺服器端是否已完全關閉為未知。

addConnectionNotificationListener

void addConnectionNotificationListener(NotificationListener listener,
                                       NotificationFilter filter,
                                       Object handback)

添加一個接收連接狀態改變的偵聽器。該偵聽器將接收 JMXConnectionNotification 型別的通知。實作也可發送任何其他型別的通知。

使用此方法可添加任意個數的偵聽器。相同的偵聽器可使用相同或不同的 filter 和 handback 值多次添加。不對重複的條目進行任何特殊處理。例如,假設偵聽器兩次註冊均為不帶 filter,則將為每個通知調用兩次其 handleNotification 方法。

參數:
listener - 用於接收連接狀態通知的偵聽器。
filter - 用於選擇要發送給偵聽器的通知的過濾器,如果將發送所有的通知,則為 null。
handback - 將隨每個通知提供給偵聽器的物件。可以為 null。
拋出:
NullPointerException - 如果 listener 為 null。
另請參見:
removeConnectionNotificationListener(javax.management.NotificationListener), NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

void removeConnectionNotificationListener(NotificationListener listener)
                                          throws ListenerNotFoundException

將一個用於接收狀態更改通知的偵聽器從列表中移除。此偵聽器必須在以前已經添加。如果有多個比對的偵聽器,則移除所有比對的偵聽器。

參數:
listener - 用於接收連接狀態通知的偵聽器。
拋出:
NullPointerException - 如果 listener 為 null。
ListenerNotFoundException - 如果偵聽器未用此 JMXConnector 註冊。
另請參見:
removeConnectionNotificationListener(NotificationListener, NotificationFilter, Object), addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

void removeConnectionNotificationListener(NotificationListener l,
                                          NotificationFilter f,
                                          Object handback)
                                          throws ListenerNotFoundException

將一個用於接收狀態更改通知的偵聽器從列表中移除。該偵聽器必須在以前已經用相同的三個參數添加。如果有多個比對的偵聽器,則只移除一個比對的偵聽器。

參數:
l - 用於接收連接狀態通知的偵聽器。
f - 用於選擇發送給偵聽器通知的過濾器。可以為 null。
handback - 將隨每個通知提供給偵聽器的物件。可以為 null。
拋出:
ListenerNotFoundException - 如果偵聽器未用此 JMXConnector 註冊,或者未用給定的 filter 和 handback 註冊。
另請參見:
removeConnectionNotificationListener(NotificationListener), addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

getConnectionId

String getConnectionId()
                       throws IOException

獲得來自連接器伺服器的連接 ID。對於給定的連接器伺服器,每個連接將具有一個在連接的整個生命週期中都不改變的唯一 ID。

返回:
此連接的唯一 ID。這與連接器伺服器包含在其 JMXConnectionNotification 中的 ID 相同。package description 描述了連接 ID 的約定。
拋出:
IOException - 如果無法獲得連接 ID,例如在連接關閉或斷開的情況下。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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