ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)
Interstage

3.18.1 インスタンス解放インタフェース

インスタンス解放インタフェースを取り扱うPOAdisconnectクラスについて説明します。
この機能は、CORBAサービスのインスタンス管理機能を利用し、かつPOAがActiveObjectMapを使用してインスタンス管理を行っている場合にのみ利用できます。

//Java
package com.fujitsu.ObjectDirector.PortableServer;
public class POAdisconnect
{
    static public void setDisconnect( POAdisconnect disconnect )
        throws org.omg.CORBA.BAD_OPERATION {
    }
    static public void resetDisconnect( POAdisconnect disconnect )
        throws org.omg.CORBA.BAD_OPERATION {
    }
    static public void resetDisconnect()
        throws org.omg.CORBA.BAD_OPERATION {
    }
    public boolean release_instance(
        org.omg.PortableServer.POA     poa,
        org.omg.PortableServer.Servant servant,
        byte[]                          oid ) {
    }
}

3.18.1.1 com.fujitsu.ObjectDirector.PortableServer.POAdisconnect.setDisconnect()

名前

com.fujitsu.ObjectDirector.PortableServer.POAdisconnect.setDisconnect

形式

public static void setDisconnect(
      com.fujitsu.ObjectDirector.PortableServer.POAdisconnect disconnect );

機能説明

クライアントアプリケーションが終了したときに、インスタンス解放を行うクラスのインスタンスを登録します。インスタンス解放を行うクラスは、このクラスを継承して作成します。

パラメタ

disconnect

登録するクラスのインスタンス。

復帰値

正常終了した場合は、ありません。
異常終了した場合は、以下の例外が発生します。

org.omg.CORBA.BAD_PARAM

パラメタにnullが指定されています。
登録が2回以上行われました。

org.omg.CORBA.SystemException

その他の要因。

システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

3.18.1.2 com.fujitsu.ObjectDirector.PortableServer.POAdisconnect.resetDisconnect()

名前

com.fujitsu.ObjectDirector.PortableServer.POAdisconnect.resetDisconnect

形式

(1) public static void resetDisconnect();
(2) public static void resetDisconnect(
        com.fujitsu.ObjectDirector.PortableServer.POAdisconnect disconnect );

機能説明

(1)すでに登録済のインスタンス解放処理クラスのインスタンスを削除します。このメソッド以前に、インスタンスが登録されていない場合、このメソッドは失敗します。

(2)すでに登録済のインスタンス解放処理クラスのインスタンスを、パラメタで指定されたインスタンスと置き換えます。

パラメタにnullを指定した場合や、このメソッド以前に、インスタンスが登録されていない場合、このメソッドは失敗します。

パラメタ

(1)なし

(2)

disconnect

変更するクラスのインスタンス。

復帰値

正常終了した場合は、ありません。
異常終了した場合は、以下の例外が発生します。

org.omg.CORBA.BAD_PARAM

このメソッドの発行前に、インスタンスが登録されていません。
(2)においてパラメタにnullが指定されています。

org.omg.CORBA.SystemException

その他の要因。

システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

3.18.1.3 com.fujitsu.ObjectDirector.PortableServer.POAdisconnect.release_instance()

名前

com.fujitsu.ObjectDirector.PortableServer.POAdisconnect.release_instance

形式

public boolean release_instance(
    org.omg.PortableServer.POA     poa,
    org.omg.PortableServer.Servant servant,
    byte[]                          oid );

機能説明

クライアントとのコネクションが切断された場合に呼び出されます。インスタンス解放処理を行う場合は、当クラスを継承したユーザ定義クラスを用意し、本メソッドをオーバライドします。本メソッドによって通知された、Servantのインスタンス、およびオブジェクトIDを元にインスタンスが必要か否かを判断し、true(解放する)またはfalse(解放しない)を返します。
スーパクラスのrelease_instance()メソッドは常にfalse(インスタンスを解放しない)を返します。

パラメタ

poa

ServantのPOA。

servant

Servantのインスタンス。

oid

ServantのオブジェクトID。

復帰値

false(デフォルト値): インスタンスを解放しません。