bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA プログラミング・リファレンス > TP フレームワーク |
Tuxedo CORBA プログラミング・リファレンス
|
ServerBase::create_servant_with_id()
概要
対象オブジェクト用のサーバントを作成します。このメソッドは、シングル・スレッドおよびマルチスレッド・サーバ・アプリケーションの開発をサポートします。
C++ バインディング
Tobj_Servant create_servant_with_id (const char* interfaceName,
const char* stroid);
引数
説明
TP フレームワークは、要求がサーバに送信されたときに、その要求を満たすための利用可能なサーバントがない場合に create_servant_with_id メソッドを呼び出します。TP フレームワークは、作成するサーバントのインターフェイスとサーバントに関連付けられるオブジェクトのオブジェクト ID を渡します。サーバ・アプリケーションでは、適切な C++ オブジェクトをインスタンス化して、そのオブジェクトを指すポインタを返します。通常、このメソッドは、インターフェイス名の switch 文を格納しており、インターフェイス名に従って新しいオブジェクトを作成します。オブジェクト ID を指定すると、サーバントのインプリメンテーションでは、サーバント・インスタンスの作成時に対象オブジェクトの情報を基にさまざまな決定を行えます。リエントラントのサポートは、サーバントのインプリメンテーションで対象オブジェクトの情報を利用する方法の一例です。
ServerBase クラスには、インターフェイス名を渡す標準の create_servant メソッドを呼び出す create_servant_with_id のデフォルト・インプリメンテーションが用意されています。このデフォルト・インプリメンテーションでは、対象のオブジェクト ID パラメータは無視されます。
Caution: サーバ・アプリケーションでは、CORBA オブジェクトが活性化されるたびにこのメソッドが呼び出されることを前提にしてはなりません。また、サーバ・アプリケーションでは、CORBA オブジェクトのサーバント・クラスのコンストラクタまたはデストラクタで、CORBA オブジェクトの状態を処理してはなりません。TP フレームワークが活性化時にサーバントを再利用する場合や、非活性化時にサーバントを破棄しない場合が考えられるからです。
戻り値
例
Tobj_Servant simple_per_request_server::create_servant_with_id(
const char* intf_repos_id, const char* stroid)
{
TP::userlog("create_servant_with_id called in thread %ld",
(unsigned long)SIMPTHR_GETCURRENTTHREADID);
// このオブジェクト ID に基づいて必要な初期化を
// 実行する
return create_servant(intf_repos_id);
}
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |