|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.rmi.server.RemoteObject java.rmi.server.RemoteServer java.rmi.activation.Activatable
public abstract class Activatable
Activatable
類別為那些需要進行持久存取並能由系統啟動的遠端物件提供支持。
對於建構子和靜態 exportObject
方法,可以像 UnicastRemoteObject
中所描述的那樣獲得將被導出的遠端物件的 stub。
試圖顯式序列化此類別的實例將失敗。
欄位摘要 |
---|
從類別 java.rmi.server.RemoteObject 繼承的欄位 |
---|
ref |
建構子摘要 | |
---|---|
protected |
Activatable(ActivationID id,
int port)
建構子用於在指定埠號上啟動/導出物件。 |
protected |
Activatable(ActivationID id,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
建構子用於在指定埠號上啟動/導出物件。 |
protected |
Activatable(String location,
MarshalledObject<?> data,
boolean restart,
int port)
建構一個可啟動的遠端物件:註冊此物件的啟動描述符(使用指定的位置、資料和重啟網要),並使用指定的埠號輸出該物件。 |
protected |
Activatable(String location,
MarshalledObject<?> data,
boolean restart,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
建構一個可啟動遠端物件:註冊此物件的啟動描述符(使用指定的位置、資料和重啟網要),並使用指定的埠號、指定的客戶端和伺服器Socket處理器輸出該物件。 |
方法摘要 | |
---|---|
static Remote |
exportObject(Remote obj,
ActivationID id,
int port)
將可啟動遠端物件導出到 RMI 運行資源庫中,使該物件能接收傳入的調用。 |
static Remote |
exportObject(Remote obj,
ActivationID id,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
將可啟動遠端物件導出到 RMI 運行資源庫中,使該物件能接收傳入的調用。 |
static ActivationID |
exportObject(Remote obj,
String location,
MarshalledObject<?> data,
boolean restart,
int port)
註冊指定物件的啟動描述符(使用指定的位置、資料和重啟網要),並使用指定的埠號輸出該物件。 |
static ActivationID |
exportObject(Remote obj,
String location,
MarshalledObject<?> data,
boolean restart,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
註冊指定物件的啟動描述符(使用指定的位置、資料和重啟網要),並使用指定的埠號、指定的客戶端和伺服器Socket處理器輸出該物件。 |
protected ActivationID |
getID()
返回物件的啟動標識符。 |
static boolean |
inactive(ActivationID id)
通知系統具有相應啟動 id 的物件目前沒有處於活動狀態的。 |
static Remote |
register(ActivationDesc desc)
為可啟動遠端物件註冊一個物件描述符,以便可以根據需要啟動它。 |
static boolean |
unexportObject(Remote obj,
boolean force)
從 RMI 運行資源庫中移除遠端物件 obj。 |
static void |
unregister(ActivationID id)
為與 id 關聯的啟動描述符撤消前面的註冊。 |
從類別 java.rmi.server.RemoteServer 繼承的方法 |
---|
getClientHost, getLog, setLog |
從類別 java.rmi.server.RemoteObject 繼承的方法 |
---|
equals, getRef, hashCode, toString, toStub |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
protected Activatable(String location, MarshalledObject<?> data, boolean restart, int port) throws ActivationException, RemoteException
註:建議最好使用同時註冊和輸出可啟動遠端物件的 Activatable
建構子,因為不 保證註冊和輸出遠端物件操作是原子操作。相反,應用程序應該分開註冊啟動描述符和輸出遠端物件操作,這樣才能正確地處理異常。
此方法使用該物件、指定位置、資料、重啟網要和埠號調用 exportObject
方法。getID()
的後續調用將返回從 exportObject
調用中返回的啟動標識符。
location
- 此物件的類別的位置data
- 物件的初始化資料port
- 導出物件的埠號(如果 port=0,則使用匿名埠號)restart
- 如果該參數為 true,那麼在一次意外崩潰之後,如果重啟啟動器或者重啟物件啟動組,則該物件也會被重啟(啟動);如果參數為 false,則只能根據需要啟動該物件。指定 restart
為 true
,不強制對新註冊的物件立即進行初始啟動操作;初始啟動是延後進行的。
ActivationException
- 如果物件註冊失敗。
RemoteException
- 如果下列操作之一失敗:a) 通過啟動系統註冊物件 b) 將物件導出到 RMI 運行資源庫。protected Activatable(String location, MarshalledObject<?> data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws ActivationException, RemoteException
註:建議最好使用同時註冊和輸出可啟動遠端物件的 Activatable
建構子,因為不 保證註冊和輸出遠端物件操作是原子操作。相反,應用程序應該分開註冊啟動描述符和輸出遠端物件操作,這樣才能正確地處理異常。
此方法使用該物件、指定位置、資料、重啟網要、埠號、客戶端和伺服器Socket處理器調用 exportObject
方法。getID()
的後續調用將返回從 exportObject
調用中返回的啟動標識符。
location
- 此物件的類別的位置data
- 物件的初始化資料restart
- 如果該參數為 true,那麼在一次意外崩潰之後,如果重啟啟動器或者重啟物件啟動組,則該物件也會被重啟(啟動);如果該參數為 false,則只能根據需要啟動該物件。指定 restart
為 true
,不強制對新註冊的物件立即進行初始啟動操作;初始啟動是延後進行的。port
- param port 導出物件的埠號(如果 port=0,則使用匿名埠號)csf
- 進行遠端物件調用的客戶端Socket處理器ssf
- 接收遠端調用的伺服器端Socket處理器
ActivationException
- 如果註冊失敗。
RemoteException
- 如果下列操作之一失敗:a) 通過啟動系統註冊物件 b) 將物件導出到 RMI 運行資源庫。protected Activatable(ActivationID id, int port) throws RemoteException
ActivationID
),以及
MarshalledObject
)。
當此類別的具體子類別通過上述帶兩個參數的建構子啟動 時,它必須調用此建構子。作為建構的副作用,遠端物件被“導出”到 RMI 運行資源庫中(在指定 port
上),並且可用於接受從客戶端傳入的調用。
id
- 物件的啟動標識符port
- 導出物件的埠號的埠號號
RemoteException
- 如果將物件導出到 RMI 運行資源庫中失敗protected Activatable(ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
ActivationID
),以及
MarshalledObject
)。
當此類別的具體子類別通過上述帶兩個參數的建構子啟動 時,它必須調用此建構子。作為建構的副作用,遠端物件被“導出”到 RMI 運行資源庫中(在指定 port
上),並且可用於接受從客戶端傳入的調用。
id
- 物件的啟動標識符port
- 導出物件的埠號的埠號號csf
- 進行遠端物件調用的客戶端Socket處理器ssf
- 接收遠端調用的伺服器端Socket處理器
RemoteException
- 如果將物件導出到 RMI 運行資源庫中失敗方法詳細資訊 |
---|
protected ActivationID getID()
public static Remote register(ActivationDesc desc) throws UnknownGroupException, ActivationException, RemoteException
desc
- 物件的描述符
UnknownGroupException
- 如果 desc
中的組 id 未使用啟動系統註冊
ActivationException
- 如果啟動系統未運行
RemoteException
- 如果遠端調用失敗public static boolean inactive(ActivationID id) throws UnknownObjectException, ActivationException, RemoteException
id
的物件目前沒有處於活動狀態的。如果物件當前處於活動狀態的,則該物件從 RMI 運行資源庫“取消導出”(僅在沒有任何掛起或者進程內調用時),使其無法再接收傳入的調用。此調用通知此 VM 的 ActivationGroup,告訴它物件處於不活動狀態,並依次通知其 ActivationMonitor。如果成功完成此調用,則對啟動器的後續啟動請求將導致物件被重新啟動。如果物件被認為是活動的,但是其自身已經取消導出,此操作仍能獲得成功。
id
- 物件的啟動標識符
UnknownObjectException
- 如果物件未知(可能已經處於不活動狀態)
ActivationException
- 如果組處於不活動狀態
RemoteException
- 如果調用通知監視器失敗public static void unregister(ActivationID id) throws UnknownObjectException, ActivationException, RemoteException
id
關聯的啟動描述符撤消前面的註冊。無法再通過該 id
啟動物件。
id
- 物件的啟動標識符
UnknownObjectException
- 如果物件(id
)未知
ActivationException
- 如果啟動系統未運行
RemoteException
- 如果對啟動系統的遠端調用失敗public static ActivationID exportObject(Remote obj, String location, MarshalledObject<?> data, boolean restart, int port) throws ActivationException, RemoteException
註:建議最好使用此方法(以及同時註冊和輸出可啟動遠端物件的 Activatable
建構子),因為不 保證註冊和輸出遠端物件操作是原子操作。相反,應用程序應該分開註冊啟動描述符和輸出遠端物件操作,這樣才能正確地處理異常。
此方法使用指定物件、位置、資料、重啟網要、埠號、客戶端和伺服器Socket處理器(為 null
)調用 exportObject
方法,然後返回得到的啟動標識符。
obj
- 將被導出的物件location
- 物件的程式碼基data
- 物件的引導資料restart
- 如果該參數為 true,那麼在一次意外崩潰之後,如果重啟啟動器或者重啟物件啟動組,則該物件也會被重啟(啟動);如果該參數為 false,則只能根據需要啟動該物件。指定 restart
為 true
,不強制對新註冊的物件立即進行初始啟動操作;初始啟動是延後進行的。port
- 導出物件的埠號的埠號號(如果 port=0,則使用匿名埠號)
desc
所獲得的啟動標識符
ActivationException
- 如果啟動組處於不活動狀態
RemoteException
- 如果物件註冊或者導出失敗public static ActivationID exportObject(Remote obj, String location, MarshalledObject<?> data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws ActivationException, RemoteException
註:建議最好使用此方法(以及同時註冊和輸出可啟動遠端物件的 Activatable
建構子),因為不 保證註冊和輸出遠端物件操作是原子操作。相反,應用程序應該分開註冊啟動描述符和輸出遠端物件操作,這樣才能正確地處理異常。
此方法首先按以下步驟註冊指定物件的啟動描述符。它通過調用 ActivationGroup.getSystem
方法來獲取啟動系統。然後,此方法通過使用 ActivationDesc
調用啟動系統的 registerObject
方法來獲取 ActivationID
,其中,ActivationDesc 是使用指定物件的類別名稱、指定位置、資料和重啟網要建構的。如果在獲取啟動系統或註冊啟動描述符時發生異常,則將向調用者拋出該異常。
然後,此方法使用指定的遠端物件、通過註冊獲取的啟動標識符、指定的埠號、指定的客戶端和伺服器Socket處理器調用 exportObject
方法輸出物件。如果輸出物件時發生異常,那麼此方法將嘗試使用啟動標識符調用啟動系統的 unregisterObject
方法來註銷啟動標識符(通過註冊獲得)。如果註銷標識符時發生異常,則忽略該異常,並向調用者拋出輸出物件時發生的原異常。
最後,此方法使用啟動標識符和指定遠端物件對此 VM 中的啟動組調用 activeObject
方法,並向調用者返回啟動標識符。
obj
- 將被導出的物件location
- 物件的程式碼基data
- 物件的引導資料restart
- 如果該參數為 true,那麼在一次意外崩潰之後,如果重啟啟動器或者重啟物件啟動組,則該物件也會被重啟(啟動);如果該參數為 false,則只能根據需要啟動該物件。指定 restart
為 true
,不強制對新註冊的物件立即進行初始啟動操作;初始啟動是延後進行的。port
- 導出物件的埠號的埠號號(如果 port=0,則使用匿名埠號)csf
- 進行遠端物件調用的客戶端Socket處理器ssf
- 接收遠端調用的伺服器端Socket處理器
ActivationException
- 如果啟動組處於不活動狀態
RemoteException
- 如果物件註冊或者導出失敗public static Remote exportObject(Remote obj, ActivationID id, int port) throws RemoteException
port
為零,則在匿名埠號上導出物件。
在啟動過程中,此 exportObject
方法應當由一個未擴展 Activatable
類別的“可啟動”物件顯式調用。對於確實擴展了 Activatable
類別的物件,無需直接調用此方法,因為該物件是在建構期間輸出的。
obj
- 遠端物件實作id
- 物件的啟動標識符port
- 導出物件的埠號的埠號號(如果 port=0,則使用匿名埠號)
RemoteException
- 如果物件導出失敗public static Remote exportObject(Remote obj, ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
port
為零,則在匿名埠號上導出物件。
在啟動過程中,此 exportObject
方法應當由一個未擴展 Activatable
類別的“可啟動”物件顯式調用。對於確實擴展了 Activatable
類別的物件,無需直接調用此方法,因為該物件是在建構期間輸出的。
obj
- 遠端物件實作id
- 物件的啟動標識符port
- 導出物件的埠號的埠號號(如果 port=0,則使用匿名埠號)csf
- 進行遠端物件調用的客戶端Socket處理器ssf
- 接收遠端調用的伺服器端Socket處理器
RemoteException
- 如果物件導出失敗public static boolean unexportObject(Remote obj, boolean force) throws NoSuchObjectException
obj
- 要取消導出的遠端物件force
- 如果該參數為 true,則即使存在掛起或者進程內調用,仍取消導出物件;如果該參數為 false,則僅當不存在掛起或者進程內調用時,才取消導出物件
NoSuchObjectException
- 如果遠端物件目前沒有被導出
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。