JavaTM Platform
Standard Ed. 6

java.rmi.activation
インタフェース Activator

すべてのスーパーインタフェース:
Remote

public interface Activator
extends Remote

Activator は、リモートオブジェクトの起動を簡単にします。切断されかかっているリモート参照は、アクティベータの activate メソッドを呼び出して、起動可能なリモートオブジェクトへの「ライブ (live)」参照を取得しようとします。起動の要求を受け取ったアクティベータは、起動識別子 id の起動記述子を探してから、グループを決定します。そのグループでは、起動するオブジェクトが、newInstance の呼び出しを通じてグループの ActivationInstantiator を使い、オブジェクトの再作成を開始します。必要であれば、アクティベータは起動グループの実行を開始します。たとえば、特定のグループ識別子の起動グループがまだ実行中でない場合は、アクティベータがそのグループの VM の実行を開始します。

Activator は、グループとそのグループ内のオブジェクトを登録する方法を提供する ActivationSystem、および、起動中あるいは停止中のオブジェクトと停止中のグループの情報を取得する ActivationMonitor と密接に連携します。

アクティベータは、起動グループが失敗した場合の監視および検出を行い、グループおよびそのグループ内の起動中のオブジェクトへの無効なリモート参照を削除できるようにします。

導入されたバージョン:
1.2
関連項目:
ActivationInstantiator, ActivationGroupDesc, ActivationGroupID

メソッドの概要
 MarshalledObject<? extends Remote> activate(ActivationID id, boolean force)
          起動識別子 id に関連したオブジェクトを起動します。
 

メソッドの詳細

activate

MarshalledObject<? extends Remote> activate(ActivationID id,
                                            boolean force)
                                            throws ActivationException,
                                                   UnknownObjectException,
                                                   RemoteException
起動識別子 id に関連したオブジェクトを起動します。そのオブジェクトが起動していることをアクティベータが認識していて、force の値が false の場合は、「ライブ (live)」参照のスタブが即座に呼び出し元に返されます。 そうでない場合は、対応するリモートオブジェクトが起動していることをアクティベータが知らなければ、アクティベータは以前に登録された起動記述子の情報を使って、オブジェクトを起動する場所となるグループ (VM) を決定します。オブジェクトのグループ記述子に対応する ActivationInstantiator がすでに存在する場合、アクティベータは起動グループの newInstance を呼び出し、それにオブジェクトの ID および記述子を渡します。

オブジェクトのグループ記述子が使う起動グループがまだ存在しない場合は、アクティベータは、子プロセスの生成などにより、ActivationInstantiator の実行を開始します。ActivationSystemactiveGroup メソッドを通じてその起動グループの参照を表すコールバックを起動グループが受け取ると、アクティベータは、起動インスタンシエータの newInstance メソッドを呼び出して、保留中の各起動要求を起動グループに転送します。 要求の結果である整列化されたリモートオブジェクト参照をスタブとして呼び出し側に返します。

アクティベータはリモートオブジェクトではなく「整列化された」オブジェクトを受け取るので、そのオブジェクトのコードをロードする必要はなく、オブジェクトの分散ガベージコレクションに関与する必要もありません。リモートオブジェクトへの強い参照を保持していれば、通常の分散ガベージコレクション機構の下では、アクティベータはリモートオブジェクトがガベージコレクトされるのを防ぐことができます。

パラメータ:
id - 起動されるオブジェクトの起動識別子
force - true の場合は、アクティベータはグループに接続してリモートオブジェクトの参照を取得する。そうでない場合は、キャッシュに入っている値を戻り値として使用できる
戻り値:
整列化された形式のリモートオブジェクト (スタブ)
例外:
ActivationException - オブジェクトの起動に失敗した場合
UnknownObjectException - オブジェクトが不明な (登録されていない) 場合
RemoteException - リモート呼び出しが失敗した場合
導入されたバージョン:
1.2

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。