bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA プログラミング・リファレンス > TP フレームワーク |
Tuxedo CORBA プログラミング・リファレンス
|
TP::create_active_object_reference()
概要
オブジェクト・リファレンスを作成し、オブジェクトを事前活性化します。
C++ バインディング
static CORBA::Object_ptr
create_active_object_reference(
const char* interfaceName,
const char* stroid,
Tobj_Servant servant);
引数
例外
説明
このメソッドでは、オブジェクト・リファレンスを作成し、オブジェクトを事前活性化します。作成されたオブジェクト・リファレンスは、オブジェクトへのアクセスで使用するクライアントに渡されます。
通常、アプリケーションではこのメソッドを以下の 2 か所で呼び出します。
このメソッドを使用すると、アプリケーションでは最初の呼び出しの前にオブジェクトを活性化できます。この処理が有用となる理由については、「明示的な活性化」を参照してください。ユーザはまずサーバントを作成し、状態を設定してから、create_active_object_reference を呼び出します。TP フレームワークでは、サーバントおよび ObjectId 文字列をアクティブ・オブジェクト・マップに入れます。その結果、TP フレームワークで既に Server::create_servant を呼び出し、サーバント・ポインタを受け取ってから、servant::activate_object を呼び出した場合とまったく同じ状態になります。
活性化されたオブジェクトは、プロセス・バウンド活性化方針で宣言されたインターフェイス用でなければなりません。それ以外の場合、例外が発生します。
オブジェクトを非活性化すると、クライアントで保持されていたオブジェクト・リファレンスを使用して、そのオブジェクトをほかのプロセスで活性化することができます。この処理が問題となる状況については、「明示的な活性化」を参照してください。
注記 ユーザ制御の同時実行方針オプションが ICF ファイルで設定されている場合、このメソッドに関する制約が 1 つあります (「パラレル・オブジェクト」を参照してください)。TP::create_active_object_reference メソッドは、ユーザ制御の同時実行が設定されたインターフェイスを渡されると、TobjS::IllegalOperation 例外をスローします。AOM はユーザ制御の同時実行が設定されている場合に使用されないので、TP フレームワークには活性化されたオブジェクトをこのサーバに接続する方法がありません。
注意
インターフェイスのオブジェクトを事前活性化する場合、そのインターフェイスの ICF ファイルで process 活性化方針を指定する必要があります。ただし、ICF ファイルで process 活性化方針を指定すると、次の問題が発生する可能性があります。
問題
対策
この問題を防ぐには、管理者が SERVER1 と SERVER2 をそれぞれ別のグループとしてコンフィギュレーションします。グループを定義するには、UBBCONFIG ファイルの SERVERS セクションを使用します。
戻り値
新しく作成されたオブジェクト・リファレンス。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |