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

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

 Previous Next Contents View as PDF  

TP::create_object_reference()

概要

オブジェクト・リファレンスを作成します。作成されたオブジェクト・リファレンスは、オブジェクトへのアクセスで使用するクライアントに渡されます。

C++ バインディング

static CORBA::Object_ptr    TP::create_object_reference (
const char* interfaceName,
const
char* stroid,
CORBA::NVList_ptr criteria);

引数

interfaceName

オブジェクトの完全修飾インターフェイス名を含む文字列を指定します。

インターフェイス名を取得するには、次のインターフェイス・タイプ・コード ID 関数を呼び出します。

const char* _tc_<CORBA interface name>::id();

<CORBA interface name> は任意のオブジェクト・クラス名です。たとえば、次のように入力します。

char* idlname = _tc_Simple->id();

stroid

ObjectId を文字列形式で指定します。 ObjectId は、クラスのこのインスタンスを一意に識別します。プログラマは、ObjectId に指定する情報を決めます。一例として、ObjectId でデータベース・キーを保持する方法があります。オブジェクト識別子の値を選択、つまり一意性のレベルを決定することは、アプリケーション・デザインの一環です。BEA Tuxedo ソフトウェアでは、オブジェクト・リファレンスの一意性は保証されません。オブジェクト・リファレンスを文字列として渡す場合など、オブジェクト・リファレンスをコピーしたり、BEA Tuxedo ドメインの外で共有したりすることがあるからです。オブジェクト・リファレンスに対して複数の呼び出しを並列実行できるように、ObjectId を一意に指定することをお勧めします。

注記 このリリースでは、ObjectId の長さに関する制約がなくなりました。

criteria

オブジェクト・リファレンスのファクトリ・ベース・ルーティングで使用する名前付き値のリストを指定します。リストはオプションで、CORBA::NVList 型です。ファクトリ・ベース・ルーティングを使用するかどうかは任意で、使用する場合はこの引数に依存します。ファクトリ・ベース・ルーティングを使用しない場合は、この引数に 0 (ゼロ) を渡します。

BEA Tuxedo システムの管理者は、UBBCONFIG ファイルでルーティング規則を指定して、ファクトリ・ベース・ルーティングを設定します。この機能の詳細については、オンライン・マニュアルの『BEA Tuxedo アプリケーションの設定』を参照してください。

例外

create_object_reference() メソッドの例外は以下のとおりです。

InvalidInterface

指定された interfaceName が NULL であることを示します。

InvalidObjectId

指定された stroid が NULL であることを示します。

説明

create_object_reference() メソッドの呼び出しは、サーバ・アプリケーションの役割です。このメソッドによって、オブジェクト・リファレンスが作成されます。作成されたオブジェクト・リファレンスは、オブジェクトへのアクセスで使用するクライアントに渡されます。

通常、サーバ・アプリケーションではこのメソッドを以下の 2 か所で呼び出します。

create_object_reference() メソッドの呼び出し方法とタイミングの例については、『BEA Tuxedo CORBA サーバ・アプリケーションの開発方法』を参照してください。

戻り値

Object

新しく作成されたオブジェクト・リファレンス。

次のコード例は、criteria 引数の使用方法を示しています。

CORBA::NVList_ptr criteria;
CORBA::Long branch_id = 7;
CORBA::Long account_id = 10001;
CORBA::Any any_val;
// リストを作成して  _var に割り当てて、終了時にクリーンアップ
CORBA::ORB::create_list (2, criteria);
CORBA::NVList_var criteria_var(criteria);
// BRANCH_ID を追加
any_val <<= branch_id;
criteria->add_value("BRANCH_ID", any_val, 0);
// ACCOUNT_ID を追加
any_val <<= account_id;
criteria->add_value("ACCOUNT_ID", any_val, 0);
// オブジェクト・リファレンスを作成
TP::create_object_reference ("IDL:BankApp/Teller:1.0",
"Teller_01", criteria);

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy