インスタンス解放インタフェースを取り扱う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 ) { } }
名前
com.fujitsu.ObjectDirector.PortableServer.POAdisconnect.setDisconnect
形式
public static void setDisconnect( com.fujitsu.ObjectDirector.PortableServer.POAdisconnect disconnect );
機能説明
クライアントアプリケーションが終了したときに、インスタンス解放を行うクラスのインスタンスを登録します。インスタンス解放を行うクラスは、このクラスを継承して作成します。
パラメタ
登録するクラスのインスタンス。
復帰値
正常終了した場合は、ありません。
異常終了した場合は、以下の例外が発生します。
パラメタにnullが指定されています。
登録が2回以上行われました。
その他の要因。
システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
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)
変更するクラスのインスタンス。
復帰値
正常終了した場合は、ありません。
異常終了した場合は、以下の例外が発生します。
このメソッドの発行前に、インスタンスが登録されていません。
(2)においてパラメタにnullが指定されています。
その他の要因。
システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
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(インスタンスを解放しない)を返します。
パラメタ
ServantのPOA。
Servantのインスタンス。
ServantのオブジェクトID。
復帰値
false(デフォルト値): インスタンスを解放しません。