モジュール java.rmi
パッケージ java.rmi.activation

クラスActivatable

  • すべての実装されたインタフェース:
    Serializable, Remote


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

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

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

    導入されたバージョン:
    1.2
    • フィールドのサマリー

      • クラス java.rmi.server.RemoteObjectから継承されるフィールド

        ref
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected Activatable​(String location, MarshalledObject<?> data, boolean restart, int port)
      このオブジェクトの起動記述子を(位置、データ、再起動モードを指定して)登録し、ポートを指定してオブジェクトをエクスポートすることにより、起動可能なリモート・オブジェクトを構築します。
      protected Activatable​(String location, MarshalledObject<?> data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
      このオブジェクトの起動記述子を(位置、データ、再起動モードを指定して)登録し、ポートおよびクライアントとサーバー・ソケット・ファクトリを指定してオブジェクトをエクスポートすることにより、起動可能なリモート・オブジェクトを構築します。
      protected Activatable​(ActivationID id, int port)
      指定されたポート上でオブジェクトを起動またはエクスポートするために使うコンストラクタです。
      protected Activatable​(ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
      指定されたポート上でオブジェクトを起動またはエクスポートするために使うコンストラクタです。
    • コンストラクタの詳細

      • Activatable

        protected Activatable​(String location,
                              MarshalledObject<?> data,
                              boolean restart,
                              int port)
                       throws ActivationException,
                              RemoteException
        このオブジェクトの起動記述子を(位置、データ、再起動モードを指定して)登録し、ポートを指定してオブジェクトをエクスポートすることにより、起動可能なリモート・オブジェクトを構築します。

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

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

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

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

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

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

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

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

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

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

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

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

        パラメータ:
        id - オブジェクトの起動識別子
        port - オブジェクトのエクスポート先のポート番号
        csf - リモート・オブジェクトの呼出しに使用する、クライアント側ソケット・ファクトリ
        ssf - リモート呼出しを受信する、サーバー側ソケット・ファクトリ
        例外:
        RemoteException - RMIランタイムへのオブジェクトのエクスポートが失敗した場合
        UnsupportedOperationException - この実装で起動がサポートされていない場合のみ
        導入されたバージョン:
        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 - リモート呼出しが失敗した場合
        UnsupportedOperationException - この実装で起動がサポートされていない場合のみ
        導入されたバージョン:
        1.2
      • inactive

        public static boolean inactive​(ActivationID id)
                                throws UnknownObjectException,
                                       ActivationException,
                                       RemoteException
        対応する起動idのオブジェクトが現在停止していることをシステムに通知します。 オブジェクトが現在起動中である場合、そのオブジェクトはRMIランタイムから「アンエクスポート」され(保留中、あるいは進行中の呼出しがない場合のみ)、以後の着信呼出しを受信できなくなります。 この呼出しはVMのActivationGroupにオブジェクトが停止していることを通知し、ActivationGroupは、該当するActivationMonitorに通知を行います。 この呼出しが正常に完了した場合、アクティベータへの後続の起動要求によってオブジェクトがふたたび起動されます。 オブジェクトがアクティブであると見られる場合であっても、すでにアンエクスポートされている場合は、このメソッドの呼出しは成功することがあります。
        パラメータ:
        id - オブジェクトの起動識別子
        戻り値:
        処理が成功した場合はtrue。オブジェクトが起動中であっても、アンエクスポート済みであるか、エクスポート中であり、保留中あるいは実行中の呼出しがない場合、処理は成功する。オブジェクトに保留中あるいは実行中の呼出しがあり、オブジェクトを終了できない場合はfalse
        例外:
        UnknownObjectException - オブジェクトが不明な場合。すでに停止している場合もある
        ActivationException - グループが動作していない場合
        RemoteException - 呼出し通知モニターが失敗した場合
        UnsupportedOperationException - この実装で起動がサポートされていない場合のみ
        導入されたバージョン:
        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 - オブジェクトの登録またはエクスポートが失敗した場合
        UnsupportedOperationException - この実装で起動がサポートされていない場合のみ
        導入されたバージョン:
        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 - オブジェクトの登録またはエクスポートが失敗した場合
        UnsupportedOperationException - この実装で起動がサポートされていない場合のみ
        導入されたバージョン:
        1.2
      • exportObject

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

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

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

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

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

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