JavaTM Platform
Standard Ed. 6

java.rmi.activation
クラス Activatable

java.lang.Object
  上位を拡張 java.rmi.server.RemoteObject
      上位を拡張 java.rmi.server.RemoteServer
          上位を拡張 java.rmi.activation.Activatable
すべての実装されたインタフェース:
Serializable, Remote

public abstract class Activatable
extends RemoteServer

永続的なアクセスを必要とし、システムから起動できるリモートオブジェクトをサポートします。

コンストラクタおよび static exportObject メソッドの場合、エクスポートするリモートオブジェクトのスタブは、UnicastRemoteObject で説明した方法で取得されます。

このクラスのインスタンスを明示的に直列化しようとすると失敗します。

導入されたバージョン:
1.2

フィールドの概要
 
クラス 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)
          このオブジェクトの起動記述子を (位置、データ、再起動モードを指定して) 登録し、ポートおよびクライアントとサーバーソケットファクトリを指定してオブジェクトをエクスポートすることにより、起動可能なリモートオブジェクトを構築します。
 
メソッドの概要
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)
          指定したオブジェクトの起動記述子を (位置、データ、再起動モードを指定して) 登録し、ポートおよびクライアントとサーバーソケットファクトリを指定してそのオブジェクトをエクスポートします。
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
 

コンストラクタの詳細

Activatable

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 の場合は、 restarttrue に指定しても、 新規登録オブジェクトを最初にすぐ起動するわけではない。 初期起動はすぐには行われない
例外:
ActivationException - オブジェクトの登録が失敗した場合
RemoteException - 次のどちらかが失敗した場合。 a) 起動システムへのオブジェクトの登録 b) RMI ランタイムへのオブジェクトのエクスポート
導入されたバージョン:
1.2

Activatable

protected Activatable(String location,
                      MarshalledObject<?> data,
                      boolean restart,
                      int port,
                      RMIClientSocketFactory csf,
                      RMIServerSocketFactory ssf)
               throws ActivationException,
                      RemoteException
このオブジェクトの起動記述子を (位置、データ、再起動モードを指定して) 登録し、ポートおよびクライアントとサーバーソケットファクトリを指定してオブジェクトをエクスポートすることにより、起動可能なリモートオブジェクトを構築します。

注: リモートオブジェクトを登録およびエクスポートする操作は原子性が保証されないため、起動可能なリモートオブジェクトを登録およびエクスポートする Activatable コンストラクタの使用は推奨されません。代わりに、アプリケーションで起動記述子を登録して、リモートオブジェクトを個別にエクスポートすることにより、例外が適切に処理されるようにしてください。

このメソッドは、このオブジェクト、および指定した位置、データ、再起動モード、ポート、クライアントとサーバーソケットファクトリを使って exportObject メソッドを呼び出します。その後、getID() を呼び出すと、exportObject の呼び出しで返される起動識別子が返されます。

パラメータ:
location - オブジェクトが使うクラスの位置
data - オブジェクトの初期化データ
restart - true の場合は、アクティベータが再起動したとき、 または突然のクラッシュ後にオブジェクトの起動グループを再起動したときにオブジェクトも起動される。 false の場合は、 restarttrue に指定しても、 新規登録オブジェクトを最初にすぐ起動するわけではない。 初期起動はすぐには行われない
port - オブジェクトのエクスポート先のポート。 port=0 の場合は匿名ポートが使用される
csf - リモートオブジェクトの呼び出しに使用する、 クライアント側ソケットファクトリ
ssf - リモートオブジェクト呼び出しを受信する、サーバー側ソケットファクトリ
例外:
ActivationException - オブジェクトの登録が失敗した場合
RemoteException - 次のどちらかが失敗した場合。 a) 起動システムへのオブジェクトの登録 b) RMI ランタイムへのオブジェクトのエクスポート
導入されたバージョン:
1.2

Activatable

protected Activatable(ActivationID id,
                      int port)
               throws RemoteException
指定されたポート上でオブジェクトを起動またはエクスポートするために使うコンストラクタです。「起動可能な」リモートオブジェクトには、以下の 2 つの引数を持つコンストラクタが必要です。

このクラスの具象サブクラスは、前述したコンストラクタを通じて起動されるときに、このコンストラクタを呼び出す必要があります。起動可能なオブジェクトを構築すると、指定された port 上の RMI ランタイムにリモートオブジェクトがエクスポートされ、クライアントからの着信呼び出しの受け付けに使用できるようになります。

パラメータ:
id - オブジェクトの起動識別子
port - オブジェクトのエクスポート先のポート番号
例外:
RemoteException - RMI ランタイムへのオブジェクトのエクスポートが 失敗した場合
導入されたバージョン:
1.2

Activatable

protected Activatable(ActivationID id,
                      int port,
                      RMIClientSocketFactory csf,
                      RMIServerSocketFactory ssf)
               throws RemoteException
指定されたポート上でオブジェクトを起動またはエクスポートするために使うコンストラクタです。「起動可能な」リモートオブジェクトには、以下の 2 つの引数を持つコンストラクタが必要です。

このクラスの具象サブクラスは、前述したコンストラクタを通じて起動されるときに、このコンストラクタを呼び出す必要があります。起動可能なオブジェクトを構築すると、指定された port 上の RMI ランタイムにリモートオブジェクトがエクスポートされ、クライアントからの着信呼び出しの受け付けに使用できるようになります。

パラメータ:
id - オブジェクトの起動識別子
port - オブジェクトのエクスポート先のポート番号
csf - リモートオブジェクトの呼び出しに使用する、 クライアント側ソケットファクトリ
ssf - リモートオブジェクト呼び出しを受信する、サーバー側ソケットファクトリ
例外:
RemoteException - RMI ランタイムへのオブジェクトのエクスポートが 失敗した場合
導入されたバージョン:
1.2
メソッドの詳細

getID

protected ActivationID getID()
オブジェクトの起動識別子を返します。このメソッドは、サブクラスだけがオブジェクトの識別子を取得できるように保護されています。

戻り値:
オブジェクトの起動識別子
導入されたバージョン:
1.2

register

public static Remote register(ActivationDesc desc)
                       throws UnknownGroupException,
                              ActivationException,
                              RemoteException
起動可能なリモートオブジェクトのオブジェクト記述子を登録して、要求に応じてリモートオブジェクトを起動できるようにします。

パラメータ:
desc - オブジェクトの記述子
戻り値:
起動可能なリモートオブジェクトが使うスタブ
例外:
UnknownGroupException - desc にあるグループ ID が 起動システムに登録されていない場合
ActivationException - 起動システムが動作していない場合
RemoteException - リモート呼び出しが失敗した場合
導入されたバージョン:
1.2

inactive

public static boolean inactive(ActivationID id)
                        throws UnknownObjectException,
                               ActivationException,
                               RemoteException
対応する起動 id のオブジェクトが現在停止していることをシステムに通知します。オブジェクトが現在起動中である場合、そのオブジェクトは RMI ランタイムから「アンエクスポート」され (保留中、あるいは進行中の呼び出しがない場合のみ)、以後の着信呼び出しを受信できなくなります。この呼び出しは VM の ActivationGroup にオブジェクトが停止していることを通知し、ActivationGroup は、該当する ActivationMonitor に通知を行います。この呼び出しが正常に完了した場合、アクティベータへの後続の起動要求によってオブジェクトがふたたび起動されます。この操作は、オブジェクトが起動中であっても、アンエクスポート済みの場合は true を返します。

パラメータ:
id - オブジェクトの起動識別子
戻り値:
処理が成功した場合は true。 オブジェクトが起動中であっても、アンエクスポート済みであるか、 エクスポート中であり、保留中あるいは実行中の呼び出しがない場合、処理は成功する。 オブジェクトに保留中あるいは実行中の呼び出しがあり、 オブジェクトを終了できない場合は false
例外:
UnknownObjectException - オブジェクトが不明な場合。 すでに停止している場合もある
ActivationException - グループが動作していない場合
RemoteException - 呼び出し通知モニターが失敗した場合
導入されたバージョン:
1.2

unregister

public static void unregister(ActivationID id)
                       throws UnknownObjectException,
                              ActivationException,
                              RemoteException
id に関連した起動記述子の登録を取り消します。その id を使ってオブジェクトを起動することはできなくなります。

パラメータ:
id - オブジェクトの起動識別子
例外:
UnknownObjectException - オブジェクト (id) が不明な場合
ActivationException - 起動システムが動作していない場合
RemoteException - 起動システムへのリモート呼び出しが失敗した場合
導入されたバージョン:
1.2

exportObject

public static ActivationID exportObject(Remote obj,
                                        String location,
                                        MarshalledObject<?> data,
                                        boolean restart,
                                        int port)
                                 throws ActivationException,
                                        RemoteException
指定したオブジェクトの起動記述子を (位置、データ、再起動モードを指定して) 登録し、ポートを指定してそのオブジェクトをエクスポートします。

注: リモートオブジェクトを登録およびエクスポートする操作は原子性が保証されないため、このメソッド (および起動可能なリモートオブジェクトを登録およびエクスポートする Activatable コンストラクタ) の使用は推奨されません。代わりに、アプリケーションで起動記述子を登録して、リモートオブジェクトを個別にエクスポートすることにより、例外が適切に処理されるようにしてください。

このメソッドは、指定したオブジェクト、位置、データ、再起動モード、ポート、および null のクライアントとサーバーソケットファクトリを使って exportObject メソッドが呼び出して、生成された起動識別子を返します。

パラメータ:
obj - エクスポート対象のオブジェクト
location - オブジェクトのコードの位置
data - オブジェクトのブートストラップデータ
restart - true の場合は、アクティベータが再起動したとき、 または突然のクラッシュ後にオブジェクトの起動グループを再起動したときにオブジェクトも起動される。 false の場合は、 restarttrue に指定しても、 新規登録オブジェクトを最初にすぐ起動するわけではない。 初期起動はすぐには行われない
port - オブジェクトのエクスポート先のポート。 port=0 の場合は匿名ポートが使用される
戻り値:
起動システムが間違ったグループである場合に、 記述子 desc を登録したときに取得した 起動識別子
例外:
ActivationException - グループが停止している場合
RemoteException - オブジェクトの登録あるいはエクスポートが失敗した場合
導入されたバージョン:
1.2

exportObject

public static ActivationID exportObject(Remote obj,
                                        String location,
                                        MarshalledObject<?> data,
                                        boolean restart,
                                        int port,
                                        RMIClientSocketFactory csf,
                                        RMIServerSocketFactory ssf)
                                 throws ActivationException,
                                        RemoteException
指定したオブジェクトの起動記述子を (位置、データ、再起動モードを指定して) 登録し、ポートおよびクライアントとサーバーソケットファクトリを指定してそのオブジェクトをエクスポートします。

注: リモートオブジェクトを登録およびエクスポートする操作は原子性が保証されないため、このメソッド (および起動可能なリモートオブジェクトを登録およびエクスポートする Activatable コンストラクタ) の使用は推奨されません。代わりに、アプリケーションで起動記述子を登録して、リモートオブジェクトを個別にエクスポートすることにより、例外が適切に処理されるようにしてください。

このメソッドは、最初に、次の方法で特定のオブジェクトの起動記述子を登録します。ActivationGroup.getSystem メソッドを呼び出して起動システムを取得します。次に、このメソッドは、起動システムの registerObject メソッドを呼び出して、オブジェクトの ActivationID を取得します。その際、オブジェクトのクラス名、および位置、データ、再起動モードを指定して構築した ActivationDesc が使用されます。起動システムの取得時または起動記述子の登録時に例外が発生した場合、その例外は呼び出し側にスローされます。

次に、このメソッドは exportObject メソッドを呼び出してオブジェクトをエクスポートします。その際、指定したリモートオブジェクト、登録から取得した起動識別子、指定したポート、および指定したクライアントとサーバーソケットファクトリが使用されます。オブジェクトのエクスポート時に例外が発生すると、このメソッドは、起動システムの unregisterObject メソッドを起動識別子を指定して呼び出し、(登録から取得した) 起動識別子の登録解除を試みます。識別子の登録解除時に例外が発生する場合、その例外は無視され、オブジェクトのエクスポート時に発生した元の例外が呼び出し側にスローされます。

最後に、このメソッドは、この VM の起動グループに対して activeObject メソッドを起動識別子およびリモートオブジェクトを指定して呼び出して、起動識別子を呼び出し側に返します。

パラメータ:
obj - エクスポート対象のオブジェクト
location - オブジェクトのコードの位置
data - オブジェクトのブートストラップデータ
restart - true の場合は、アクティベータが再起動したとき、 または突然のクラッシュ後にオブジェクトの起動グループを再起動したときにオブジェクトも起動される。 false の場合は、 restarttrue に指定しても、 新規登録オブジェクトを最初にすぐ起動するわけではない。 初期起動はすぐには行われない
port - オブジェクトのエクスポート先のポート。 port=0 の場合は匿名ポートが使用される
csf - リモートオブジェクトの呼び出しに使用する、 クライアント側ソケットファクトリ
ssf - リモートオブジェクト呼び出しを受信する、サーバー側ソケットファクトリ
戻り値:
起動システムに記述子を登録して得られた 起動識別子
例外:
ActivationException - グループが停止している場合
RemoteException - オブジェクトの登録あるいはエクスポートが失敗した場合
導入されたバージョン:
1.2

exportObject

public static Remote exportObject(Remote obj,
                                  ActivationID id,
                                  int port)
                           throws RemoteException
起動可能なリモートオブジェクトを RMI ランタイムにエクスポートすることにより、着信呼び出しの受け付けにオブジェクトを使用できるようにします。port の値が 0 の場合、オブジェクトは匿名ポートにエクスポートされます。

起動時に、exportObject メソッドは、Activatable クラスを拡張しない「起動可能な」オブジェクトから明示的に呼び出されることがあります。このオブジェクトは構築時にエクスポートされるため、Activatable クラスを拡張してこのメソッドを直接呼び出すオブジェクトは必要はありません。

パラメータ:
obj - 実装されたリモートオブジェクト
id - オブジェクトの起動識別子
port - オブジェクトのエクスポート先のポート。 port=0 の場合は匿名ポートが使用される
戻り値:
起動可能なリモートオブジェクトが使うスタブ
例外:
RemoteException - オブジェクトのエクスポートに失敗した場合
導入されたバージョン:
1.2

exportObject

public static Remote exportObject(Remote obj,
                                  ActivationID id,
                                  int port,
                                  RMIClientSocketFactory csf,
                                  RMIServerSocketFactory ssf)
                           throws RemoteException
起動可能なリモートオブジェクトを RMI ランタイムにエクスポートすることにより、着信呼び出しの受け付けにオブジェクトを使用できるようにします。port の値が 0 の場合、オブジェクトは匿名ポートにエクスポートされます。

起動時に、exportObject メソッドは、Activatable クラスを拡張しない「起動可能な」オブジェクトから明示的に呼び出されることがあります。このオブジェクトは構築時にエクスポートされるため、Activatable クラスを拡張してこのメソッドを直接呼び出すオブジェクトは必要はありません。

パラメータ:
obj - 実装されたリモートオブジェクト
id - オブジェクトの起動識別子
port - オブジェクトのエクスポート先のポート。 port=0 の場合は匿名ポートが使用される
csf - リモートオブジェクトの呼び出しに使用する、 クライアント側ソケットファクトリ
ssf - リモートオブジェクト呼び出しを受信する、サーバー側ソケットファクトリ
戻り値:
起動可能なリモートオブジェクトが使うスタブ
例外:
RemoteException - オブジェクトのエクスポートに失敗した場合
導入されたバージョン:
1.2

unexportObject

public static boolean unexportObject(Remote obj,
                                     boolean force)
                              throws NoSuchObjectException
RMI ランタイムからリモートオブジェクト obj を削除します。削除が成功すると、オブジェクトは RMI 入接続呼の受け付けのために使用できなくなります。パラメータ force が true に設定されていると、リモートオブジェクトへの保留状態の呼び出しがある場合や、進行中の呼び出しがある場合でも、オブジェクトは強制的にアンエクスポートされます。パラメータ force が false に設定されていると、オブジェクトへの保留中または進行中の呼び出しがない場合にのみ、オブジェクトがアンエクスポートされます。

パラメータ:
obj - アンエクスポートされるリモートオブジェクト
force - true の場合は、保留中または進行中の呼び出しがあっても、 オブジェクトをアンエクスポートする。 false の場合は、保留中または進行中の呼び出しがないときにだけ、オブジェクトをアンエクスポートする
戻り値:
オペレーションが成功した場合は true、そうでない場合は false
例外:
NoSuchObjectException - リモートオブジェクトが 現在エクスポートされていない場合
導入されたバージョン:
1.2

JavaTM Platform
Standard Ed. 6

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

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