2 実装構成ファイル(ICF)
Oracle Tuxedo CORBA TPフレームワークのアプリケーション・プログラミング・インタフェース(API)には、オブジェクトをアクティブ化および非アクティブ化するためのコールバック・メソッドが用意されています。これらのメソッドを使用すると、アプリケーション・コードにCORBAオブジェクトの柔軟な状態管理スキームを実装できます。
状態管理とは、オブジェクトのアクティブ化および非アクティブ化時にオブジェクトの状態の保存および復元を制御する方法のことです。状態管理は、サーバーのパフォーマンスおよびリソース使用量に影響を与える、アクティブ化されたオブジェクトの有効期間にも影響します。TPフレームワークの外部APIには、activate_object()およびdeactivate_object()メソッドが含まれています。これらのメソッドは、状態管理コードを配置可能な場所を示します。また、TPフレームワークAPIには、ユーザーがオブジェクトをアクティブ化するタイミングを制御できるようにするためのdeactivateEnable()メソッドが含まれています。アクティブ化されたオブジェクトのデフォルトの有効期間は、OMG IDLのコンパイル時に実装に割り当てたポリシーによって制御されます。
CORBAオブジェクトがアクティブ化されている間、オブジェクトの状態はサーバント内に格納されます。この状態は、オブジェクトが最初に呼び出されたとき、つまりオブジェクト参照の作成後にCORBAオブジェクトに対してメソッドが最初に呼び出されたときと、オブジェクトが非アクティブ化されて以降の呼出しで初期化しなければなりません。
CORBAオブジェクトが非アクティブ化されている間、オブジェクトの状態をサーバントがアクティブ化されていたプロセスの外部に保存する必要があります。オブジェクトがアクティブ化されたときには、オブジェクトの状態を復元する必要があります。オブジェクトの状態は、共有メモリー、ファイル、データベースなどに保存できます。プログラマは、オブジェクトの状態の構成要素と、オブジェクトを非アクティブ化する前に何を保存し、オブジェクトをアクティブ化した後に何を復元するかを決定する必要があります。
実装構成ファイル(ICF)を使用すると、アクティブ化ポリシーを設定して、各実装でアクティブ化されたオブジェクトの有効期間を設定できます。ICFファイルでは、アクティブ化ポリシーを指定することで、オブジェクトの状態を管理します。アクティブ化ポリシーは、CORBAオブジェクトがメモリー内でアクティブ化している期間を決定します。CORBAオブジェクトがポータブル・オブジェクト・アダプタ(POA)内でアクティブ化されているのは、POAのアクティブ・オブジェクト・マップにオブジェクトIDと既存のサーバントを関連付けるエントリが入っている場合です。オブジェクトを非アクティブ化すると、オブジェクトIDとアクティブ化されたサーバントとの関連付けが削除されます。