5.2.3 ファクトリの検索

クライアント・アプリケーションが、ファクトリにオブジェクトへのリファレンスの作成をリクエストするためには、まずファクトリ・オブジェクトへのリファレンスを取得する必要があります。ファクトリ・オブジェクトへの参照は、特定の選択基準でFactoryFinderへの問合せを行うことによって取得されます(次の図を参照)。基準は、使用されている特定のFactoryFinderインタフェースおよびメソッドの形式によって決まります。

図5-2 ファクトリ・オブジェクトの検索

ファクトリ・オブジェクトの検索の図について説明します

Oracle Tuxedo CORBAは、FactoryFinder用に宣言されたfind_factories()メソッドに加えて、4つのメソッドを導入することによって、CosLifeCycle::FactoryFinderインタフェースを拡張します。したがって、Tobjの拡張により、クライアントはfind_factories()メソッドまたはfind_factories_by_id()メソッドのいずれかを使って、アプリケーション・ファクトリのリストを取得できます。またクライアントは、単一のアプリケーション・ファクトリを取得するためにfind_one_factory()メソッドまたはfind_one_factory_by_id()メソッドを使用し、登録されている全ファクトリのリストを取得するためにlist_factories ()を使用します。

ノート:

Tobj_Bootstrapオブジェクトを使用する場合は、CosLifeCycle::FactoryFinderインタフェースにOracle Tuxedo CORBAの拡張を使用できますが、このオブジェクトはファクトリを見つけるために必須のものではありません。CORBA INSを使用していれば、CosLifeCycle::FactoryFinderインタフェースにより提供されるfind_factories()メソッドを使用できます。

CosLifeCycle::FactoryFinderインタフェースは、factory_keyを定義します。これは、後述のCosNaming名に準拠した、id文字列とkind文字列のシーケンスです。アプリケーション・ファクトリの登録時に、TPフレームワークによって、全アプリケーション・ファクトリのNameComponentにおけるkindフィールドが、文字列FactoryInterfaceに設定されます。アプリケーションは、idフィールドの値を自身で指定します。

CORBAサービス・ライフサイクル・サービス・モジュールがそれぞれ独自のファイル(ns.idlおよびlcs.idl)に含まれているものと仮定し、Oracle Tuxedo FactoryFinderの使用に関連する両ファイルのサブセットに対応するOMG IDLコードのみを、次のリストに示します。