bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA プログラミング・リファレンス > インプリメンテーション・コンフィギュレーションファイル (ICF) |
Tuxedo CORBA プログラミング・リファレンス
|
インプリメンテーション・コンフィギュレーションファイル (ICF)
BEA 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 と活性化されたサーバントとの関連付けが削除されます。
ICF の構文
ICF の構文は次のとおりです。
[#pragma activation_policy method|transaction|process]
[#pragma transaction_policy never|ignore|optional|always]
[#pragma concurrency_policy user_controlled|system_controlled]
[Module module-name {]
implementation [implementation-name]
{
implements (module-name::interface-name);
[activation_policy (method|transaction|process);]
[transaction_policy (never|ignore|optional|always);]
[concurrency_policy (user_controlled|system_controlled);]
};
[};]
ICF ファイルのサンプル
リスト2-1 は、ICF ファイルの例を示しています。
コード リスト 2-1 ICF の例
module POA_University1
{
implementation CourseSynopsisEnumerator_i
{
activation_policy ( process );
transaction_policy ( optional );
implements ( University1::CourseSynopsisEnumerator );
};
};
module POA_University1
{
implementation Registrar_i
{
activation_policy ( method );
transaction_policy ( optional );
implements ( University1::Registrar );
};
};
module POA_University1
{
implementation RegistrarFactory_i
{
activation_policy ( process );
transaction_policy ( optional );
implements ( University1::RegistrarFactory );
};
};
ICF ファイルの作成
ICF ファイルの作成には、手動でコーディングする方法と、genicf コマンドを使用して OMG IDL ファイルから作成する方法があります。genicf コマンドの構文およびオプションについては、『BEA Tuxedo コマンド・リファレンス』を参照してください。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |