bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo CORBA プログラミング・リファレンス

 Previous Next Contents View as PDF  

Tobj_ServantBase:: activate_object()

概要

オブジェクト ID をサーバントに関連付けます。このメソッドによって、アプリケーションでは、オブジェクトが活性化されたときにオブジェクトの状態を復元できます。状態は、共用メモリ、通常のフラット・ファイル、またはデータベース・ファイルから復元できます。

C++ バインディング

class Tobj_ServantBase : public PortableServer::ServantBase {
public:
virtual void activate_object(const char * stroid) {}
};

引数

stroid

オブジェクト ID を文字列形式で指定します。 オブジェクト ID は、クラスのこのインスタンスを一意に識別します。このオブジェクト ID は、TP::create_object_reference() を使用してオブジェクト・リファレンスを作成したときに指定した ID、または TP::create_active_object_reference() の呼び出しで使用したオブジェクト・リファレンスの ID と同じになります。

注記 このリリースでは、オブジェクト ID の長さに関する制約がなくなりました。

説明

オブジェクトの活性化は、クライアントが活性化されていない CORBA オブジェクトのメソッドを呼び出すことで開始されます。これにより、ポータブル・オブジェクト・アダプタ (POA) がサーバントを CORBA オブジェクトに割り当てます。activate_object() メソッドは、クライアントが呼び出したメソッドの前に呼び出されます。activate_object() から正常に制御が戻った場合、つまり例外が発生しなかった場合、要求されたメソッドがサーバントで実行されます。

プログラマは、activate_object() および deactivate_object() メソッドとクライアントが呼び出すメソッドを使用して、オブジェクトの状態を管理できます。これらのメソッドを使用してオブジェクトの状態を管理する方法は、アプリケーションのニーズによって異なります。これらのメソッドの使い方については、『BEA Tuxedo CORBA サーバ・アプリケーションの開発方法』を参照してください。

オブジェクトがグローバル・トランザクションに関与している場合、activate_object() はそのグローバル・トランザクションのスコープ内で実行されます。

オブジェクトのプログラマは、格納されているオブジェクトの状態が矛盾していないかどうかをチェックする必要があります。つまり、アプリケーション・コードでは、deactivate_object() がオブジェクトの状態を正しく保存したかどうかを示す永続性フラグを保存する必要があります。このフラグを activate_object() でチェックします。

戻り値

特にありません。

例外

activate_object() の実行中にエラーが発生した場合、アプリケーション・コードでは、CORBA 標準例外または TobjS::ActivateObjectFailed 例外を生成する必要があります。例外が発生すると、TP フレームワークは例外をキャッチして、以下のイベントが発生します。

注記 オペレーション呼び出しを受信したときにトランザクションを自動的に開始する場合、各 CORBA インターフェイスに対して、AUTOTRANYes に設定します。AUTOTRANYes に設定しても、インターフェイスが既にトランザクション・モードにある場合は無効です。AUTOTRAN の詳細については、『BEA Tuxedo CORBA トランザクション』を参照してください。

TobjS::ActivateObjectFailed

"TPFW_CAT:24: ERROR: Activating object - application raised TobjS::ActivateObjectFailed. Reason = reason. Interface = interfaceName, OID = oid"

reason はユーザ指定の理由を示し、interfaceNameoid はそれぞれ呼び出された CORBA オブジェクトの インターフェイスID とオブジェクト ID を示します。

TobjS::OutOfMemory

"TPFW_CAT:22: ERROR: Activating object - application raised TobjS::OutOfMemory. Reason = reason. Interface = interfaceName, OID = oid"

reason はユーザ指定の理由を示し、interfaceNameoid はそれぞれ呼び出された CORBA オブジェクトの インターフェイスID とオブジェクト ID を示します。

CORBA::Exception

"TPFW_CAT:25: ERROR: Activating object - CORBA Exception not handled by application. Exception ID = exceptionID. Interface = interfaceName, OID = oid"

exceptionID は例外のインターフェイス ID を示し、interfaceNameoid はそれぞれ呼び出された CORBA オブジェクトのインターフェイス ID とオブジェクト ID を示します。

その他の例外

"TPFW_CAT:26: ERROR: Activating object - Unknown Exception not handled by application. Exception ID = exceptionID. Interface = interfaceName, OID = oid"

exceptionID は例外のインターフェイス ID を示し、interfaceNameoid はそれぞれ呼び出された CORBA オブジェクトのインターフェイス ID とオブジェクト ID を示します。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy