|
以下の項は、Oracle Tuxedo CORBA Domains環境のドメインの計画および構成の方法について説明します。
Oracle Tuxedo Domains構成は、「Oracle TuxedoのDomainsコンポーネントとは」で説明されているようにコアATMIドメイン環境を拡張したものです。Oracle Tuxedoドメイン(ビジネス・アプリケーション)は、完全に管理可能な構造体です。ドメインを参照するプログラミング・インタフェースはありません。ドメインを意識するのは管理者のみです。
Oracle Tuxedo Domains構成では、管理者はその構成の中でどのサーバーがほかのサーバーで利用できるかを構成できます。このため、CORBAの観点から見ると、Oracle Tuxedo DomainsコンポーネントはOracle Tuxedo CORBAアプリケーションが相互に作用してリソースを共有するための手段であると言えます。CORBAクライアントと参加アプリケーションは、Domains構成について何も意識する必要はありません。知っておく必要があるのは、どのファクトリ・オブジェクトが利用可能で、どうしたらそのオブジェクトにアクセスできるのかということだけです。
ドメイン間のこの透過性により、管理者は各ドメインのサービスを構成し、複数のドメイン間にリソースを分散することができます。ドメインに関する情報がアプリケーションに存在する場合、構成を変更すると、アプリケーションも同様に作成し直す必要があります。
図3-1は、2つのOracle Tuxedo CORBAアプリケーションで構成されたシンプルなDomains構成を示しています。

以降のシングル・ドメインとマルチ・ドメインに関する説明は、このシンプルなDomains構成に基づいています。
以下は、シンプルDomains構成におけるCORBAクライアントXとドメインA間のシングル・ドメイン通信の手順です。
この手順を通じて、クライアントはオブジェクトがどこにあるのか、つまりどのドメインにあるのかについて何も知りません。
クライアント・マシンは単純な構造で、必要なインフラストラクチャも少ないため(大部分はスタンドアロン)、クライアントをドメインAに接続するための管理は比較的単純です。もちろん、Oracle Tuxedoドメインへの接続はクライアントのプライマリ管理です。実際の管理作業は、ドメインAにあるISLのアドレスを設定することになります。
マルチ・ドメイン通信の場合、シンプルDomains構成のQ1はドメインCにあるオブジェクトR1のサービスを要求するので、ドメインの境界をまたいで上のステップ1 - 4に対応する処理を実行する必要があります。実際の手順は以下のようになります。
クライアントXで、オブジェクトQ1がドメインCのファクトリとオブジェクトを取得するには、何らかの管理タスクが必要です。シンプルDomains構成に示すように、ドメイン間通信にはドメイン・ゲートウェイを使用します。ドメイン・ゲートウェイは、ドメイン内のシステム・サーバーです。
システム・サーバーは、ユーザー定義のサーバーとは異なり、ネーム・サーバー、FactoryFinder、ISLなどと共にOracle Tuxedo製品の一部として提供されています。ドメイン・ゲートウェイは、ドメインの接続ポイントになるので、概念的にはISLと似ています。ただし、ISLと異なり、ドメイン・ゲートウェイは別のドメイン・ゲートウェイに接続し、それ自身がドメインの接続ポイントになります。つまり、ドメイン・ゲートウェイの役割は、別のドメイン・ゲートウェイに接続することです。したがって、2つのドメイン・ゲートウェイは相互に協調し合い、別のドメインに存在するオブジェクトの呼出しが、適切なドメインに確実にルーティングされるようにします。
Oracle CORBA Domains構成は、以下の要素で構成されます。
UBBCONFIGファイルと呼ばれるこのテキスト・ファイルでは、ドメイン名を指定し、ドメイン・ゲートウェイ・サーバーのグループ・エントリとサービス・エントリを設定します。UBBCONFIGファイルでは、ドメイン・ゲートウェイの属性は指定しません。これらの属性はすべて、次に説明するDomains構成ファイルで指定します。
Oracle Tuxedoの構成ファイルには、どのような名前でも付けられます。ただし、そのファイルの内容は『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のリファレンス・ページ「UBBCONFIG(5)」で説明されている形式に準拠している必要があります。
DMCONFIGファイルと呼ばれるこのテキスト・ファイルでは、このドメイン(ローカル・ドメイン)に接続されるリモート・ドメインを指定します。Domains構成に参加するドメインごとに、1つのDMCONFIGファイルが必要です。ドメインが別のドメインに接続しない場合、DMCONFIGファイルは必要ありません。
Domains構成ファイルには、どのような名前でも付けられます。ただし、そのファイルの内容は『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のリファレンス・ページ「DMCONFIG(5)」で説明されている形式に準拠している必要があります。
factory_finder.iniと呼ばれるこのテキスト・ファイルでは、ドメインの境界をまたいで検索するファクトリを指定します。CORBA Domains構成に参加するドメインごとに、1つのfactory_finder.iniファイルが必要です。ドメインが別のドメインに接続しない場合、factory_finder.iniファイルは必要ありません。
factory_finder.iniファイルとDMCONFIGを慎重に調整して、その両方が同じ接続ドメインに関する情報を持ち、同じ接続を提供するようにします。
FactoryFinder Domains構成ファイルには、どのような名前でも付けられます。ただし、そのファイルの内容は『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のリファレンス・ページ「factory_finder.ini(5)」で説明されている形式に準拠している必要があります。
CORBAの観点から見ると、Oracle Tuxedo Domainsコンポーネントの中心的機能は、CORBAドメインのアプリケーションが、別のCORBAドメインのオブジェクトを呼び出す際に、クライアントまたはサーバー・アプリケーションがドメインを意識せずに処理できるようにすることです。ドメインの境界をまたぐこのような呼出しを、アプリケーションがドメインの境界を意識せずに実行するには、様々な構成情報が必要です。
オブジェクト参照を使用して、ローカル・ドメインまたはリモート・ドメインを指定できます。FactoryFinderがリモート・ドメイン内のファクトリに対するオブジェクト参照を返すと、通常リモート・ドメインの参照が発生します。また、ファクトリがそのリモート・ドメインのオブジェクト参照を作成して返しても、リモート・ドメインの参照が発生します(ただし、ファクトリのドメインに対するローカル参照になります)。
| 注意: | アプリケーションは、オブジェクト参照のドメインを認識しません。つまり、アプリケーション側では、オブジェクト参照が参照するドメインを見つけられません。 |
ローカル・ドメインのサーバーから別のドメインのオブジェクト参照を取得する場合、アプリケーション側では、ローカル・ドメインのオブジェクト参照を取得する場合と同じ方法でFactoryFinderを使用します。アプリケーション側では、FactoryFinderが別のドメインのファクトリに対するリファレンスを返したことが認識されないので、同じ方法が使用されます。構成ファイルには、このことは示されません。
FactoryFinderまたはファクトリによってオブジェクト参照が取得されると、そのオブジェクト参照を任意の転送先に渡すことができます。たとえば、ローカル・ドメインのオブジェクトに渡したり、クライアントに返したり、別のドメインに渡すことができます。
次の3つの構成ファイルを使用して、CORBA Domains構成を設定します。
CORBA Domains構成の各ドメインでは、これら3つのファイルのセットが必要です。管理者は、構成ファイルの各セット内、および構成ファイルのセット間で構成を調整する必要があります。Domains構成でドメインの数が増えると、構成を調整する手間も増えることになります。
複数のドメインを構成するには、UBBCONFIGファイルで以下のパラメータを指定する必要があります。
単一のOracle Tuxedoドメイン(スタンドアロン・ドメイン)の場合は不要ですが、別のドメインに接続しているドメインにはDOMAINIDが必要です。このパラメータは、次のようにUBBCONFIGファイルのRESOURCESセクションで指定します。
domain_nameの長さは1から13文字である必要があります。例:
domain_nameは、関連するDMCONFIGファイルのDM_EXPORTおよびDM_IMPORTセクションで参照される名前です。domain_nameは次の形式で参照されます。
二重引用符も参照の一部として必要です。スラッシュ(//)は、この名前がOracle Tuxedo ATMIドメインではなくOracle Tuxedo CORBAドメインに適用されることを意味します。例:
企業内の各ドメインには、一意のdomain_nameを指定する必要があります。
ほかのすべてのOracle Tuxedoシステム・サーバーと同じように、ゲートウェイのグループとサーバー名を指定する必要があります。たとえば、UBBCONFIGファイルのGROUPSセクションで次のように指定します。
この例では、LGWGRPはユーザーが選択した名前(おそらく、"Local Gateway Group"の略語)です。
Oracle Tuxedoドメイン・ゲートウェイ(TDomainゲートウェイ)のサーバー名はGWTDOMAINで、ほかのグループ同様、サーバー・グループおよびサーバーIDと関連付ける必要があります。GWTDOMAIN名は、選択したサーバー・グループ名と関連付けられたSERVERSセクションで指定します。例:
GWTDOMAIN SRVGRP=LGWGRP SRVID=1
このエントリは、TDomainゲートウェイを使用する必要があり、追加情報はDMCONFIGファイルに記載されていることをOracle Tuxedo CORBAアプリケーションに通知します。
Domains構成に参加する各Oracle Tuxedoドメインでは、それ専用のDMCONFIGファイルが必要です。DMCONFIGファイルでは、ローカル・ドメイン(DMCONFIGファイルのあるドメイン)と1つ以上のリモート・ドメイン(ローカル・ドメインが相互運用されるドメイン)の関係を指定します。
DMCONFIGファイルのほとんどのドキュメントでは、サービスを共有するためのOracle Tuxedo ATMIドメインの構成が中心的に説明されていますが、それはOracle Tuxedo CORBA環境には適切ではありません。Oracle Tuxedo CORBA Domains環境では、「サービス」はOracle Tuxedo CORBAリクエストにサービスできるOracle Tuxedoドメインの名前でしかありません。
CORBA Domains環境には、DMCONFIGファイルの次の7セクションが適用されます。
| 注意: | DM_LOCALセクションは、DM_REMOTEセクションの前になければなりません。 |
これら7つのセクションの多くのパラメータはATMI用のパラメータなので、CORBA Domains環境の構成には関係ありません。
以降の説明は、リスト3-1で示されているサンプルDMCONFIGファイルに基づいています。
#BEA Tuxedo CORBA Domains Configuration File
##
*DM_RESOURCES
VERSION=Experimental8.9
*DM_LOCAL
LDOM GWGRP=LGWGRP TYPE=TDOMAIN ACCESSPOINTID="MUTT"*DM_REMOTE
TDOM1 TYPE=TDOMAIN ACCESSPOINTID="JEFF"*DM_EXPORT
"//MUTT"*DM_IMPORT
"//JEFF" RACCESSPOINT=TDOM1*DM_TDOMAIN
LDOM NWADDR="//sanfran.kmart.com:2507"
TDOM1 NWADDR="//sanhose.kmart.com:3186"| 注意: | このコード・リストのACCESSPOINTIDパラメータはDOMAINIDパラメータで置換でき、RACCESSPOINTパラメータはRDOMパラメータで置換できます。このコード・リストでは、新しいDMCONFIG用語が使われています。 |
DM_RESOURCESセクションでは、グローバルのDomains構成情報、具体的にはユーザー指定の構成バージョン文字列を指定します。このセクションでは、VERSION=stringが唯一のパラメータです。stringは、現在のDMCONFIGファイルのバージョン番号を入力できるフィールドです。このフィールドはソフトウェアによってチェックされません。
サンプルのDMCONFIGファイルでは、VERSIONパラメータが次のようにExperimental8.9に設定されています。
*DM_RESOURCES
VERSION=Experimental8.9 DM_LOCALセクション(DM_LOCAL_DOMAINSセクション)では、1つ以上のローカル・ドメイン・アクセス・ポイント(論理名)を定義します。定義した各ローカル・ドメイン・アクセス・ポイントについて、このセクションでアクセス・ポイントのドメイン・ゲートウェイ・グループ(TDOMAINなど)を指定します。また、CORBA環境用に、アクセス・ポイントを通じてアクセスできるローカルOracle Tuxedoドメインのdomain_nameをDM_EXPORTセクションで指定します。ローカル・ドメインは、1つ以上のリモートOracle TuxedoドメインのCORBAクライアントからローカル・ドメイン・アクセス・ポイントを通じてアクセス可能になります。
DM_LOCALセクションでは、UBBCONFIGファイルで定義されたドメイン・ゲートウェイ・グループごとに1つだけ必ずエントリが必要です。各エントリでは、グループで実行中のドメイン・ゲートウェイ・プロセスに必要なパラメータを指定します。
DM_LOCALセクションのエントリの形式は次のとおりです。
LocalAccessPoint required_parameters [optional_parameters]
LocalAccessPointは、UBBCONFIGファイルで定義されたゲートウェイ・グループを表すために選択したローカル・ドメイン・アクセス・ポイント識別子(論理名)です。ローカル・ドメイン・アクセス・ポイントは、UBBCONFIGファイルで指定されたdomain_nameまたはゲートウェイ・グループと同じ名前ではありません。ローカル・ドメイン・アクセス・ポイントはDMCONFIGファイル内でのみ使用される名前であり、UBBCONFIGファイルが変更された場合の影響を限定します。UBBCONFIGの変更はローカル・ドメイン・アクセス・ポイントに定義されたパラメータのみに影響し、DMCONFIGファイルを通じて使用されるローカル・ドメイン・アクセス・ポイントの論理名には影響しません。
このパラメータでは、このローカル・ドメイン・アクセス・ポイントに関連付けられたドメイン・ゲートウェイ・サーバー・グループの名前(UBBCONFIGファイルのGROUPSセクションで指定された名前)を指定します。
TYPEパラメータは、Oracle Tuxedo CORBA環境のTDomainゲートウェイを使用することを指定するために必要です。
ACCESSPOINTID (DOMAINID)パラメータは、リモート・ドメインとの接続を設定する際のセキュリティを目的として、このローカル・ドメイン・アクセス・ポイントと関連付けられたゲートウェイ・グループを識別するために使用します。GWGRPパラメータで指定されたゲートウェイ・サーバー・グループは、セキュリティ・チェック時にこの文字列を使用します。UBBCONFIGファイルのRESOURCESセクションにあるdomain_nameと対応させる必要はありません。ACCESSPOINTIDは、ローカル・ドメインとリモート・ドメインの両方にわたり、一意でなければなりません。stringの値には、一連の文字(“BA.CENTRAL01"など)か、0xで始まる16進数(“0x0002FF98C0000B9D6"など)を指定できます。ACCESSPOINTIDは、32以下のオクテットで指定する必要があります。文字列を指定する場合は、32文字以内で指定する必要があります(最後のNULLを含む)。
*DM_LOCAL
LDOM GWGRP=LGWGRP TYPE=TDOMAIN ACCESSPOINTID="MUTT"
この例では、LDOMが、サーバー・グループ名LGWGRP (UBBCONFIGで指定)のローカルTDomainゲートウェイ・グループと関連付けられたローカル・ドメイン・アクセス・ポイントとして識別されます。ドメイン・ゲートウェイが常にドメイン間のセキュリティ・チェックの対象になる場合、MUTTの名前で通過します。
| 注意: | ドメイン・ゲートウェイが常にドメイン間のセキュリティ・チェックの対象になる場合で、かつローカル・ドメイン・アクセス・ポイントにCONNECTION_PRINCIPAL_NAMEパラメータが指定されている場合、ゲートウェイはそのパラメータで指定された名前で通過します。 |
DM_LOCALセクションのオプション・パラメータは、ドメイン・ゲートウェイの操作で使用するリソースと最大値/最小値を指定します。以上のパラメータの詳細は、『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のリファレンス・ページ「DMCONFIG(5)」を参照してください。
DM_REMOTEセクション(DM_REMOTE_DOMAINSセクション)では、1つ以上のリモート・ドメイン・アクセス・ポイント(論理名)を定義します。定義した各リモート・ドメイン・アクセス・ポイントについて、このセクションでアクセス・ポイントのドメイン・ゲートウェイ・グループ(TDOMAINなど)を指定します。また、CORBA環境用に、アクセス・ポイントを通じてアクセスできるリモートOracle Tuxedoドメインのdomain_nameをDM_IMPORTセクションで指定します。リモート・ドメインは、ローカル・ドメインのCORBAクライアントからリモート・ドメイン・アクセス・ポイントを通じてアクセス可能になります。
このセクションでは、複数のリモート・ドメイン・アクセス・ポイントを定義できます。リモート・ドメインと通信するためにこのOracle Tuxedoドメインで使用される各ドメイン・ゲートウェイ・グループについて1つ以上を定義できます。
DM_REMOTEセクションのエントリの形式は次のとおりです。
RemoteAccessPoint required_parameters
RemoteAccessPointは、UBBCONFIGファイルで定義された特定のゲートウェイ・グループから特定のリモート・ドメインにアクセスできるようにするために選択したリモート・ドメイン・アクセス・ポイント識別子(論理名)です。リモート・ドメイン・アクセス・ポイントは、ローカル・ドメインまたはリモート・ドメインのUBBCONFIGファイルで指定されたdomain_nameまたはゲートウェイ・グループと同じ名前ではありません。リモート・ドメイン・アクセス・ポイントはDMCONFIG内でのみ使用される名前であり、UBBCONFIGが変更された場合の影響を限定します。UBBCONFIGの変更はリモート・ドメイン・アクセス・ポイントに定義されたパラメータのみに影響し、DMCONFIGファイルを通じて使用されるリモート・ドメイン・アクセス・ポイントの論理名には影響しません。
TYPE = TDOMAIN
ACCESSPOINTID = string
ACCESSPOINTID (DOMAINID)パラメータは、リモート・ドメインとの接続を設定する際のセキュリティを目的として、このリモート・ドメイン・アクセス・ポイントと関連付けられたリモート・ドメインを識別するために使用します。ゲートウェイは、セキュリティ・チェック時にこの文字列を使用します。ACCESSPOINTIDは、UBBCONFIGファイルのRESOURCESセクションにあるdomain_nameと対応させる必要はありません。ACCESSPOINTIDは、ローカル・ドメインとリモート・ドメインの両方にわたり、一意でなければなりません。stringの値には、一連の文字(“BA.BANK01"など)か、0xで始まる16進数(“0x0002FF98C0000B9D6"など)を指定できます。ACCESSPOINTIDは、32以下のオクテットで指定する必要があります。文字列を指定する場合は、32文字以内で指定する必要があります(最後のNULLを含む)。
*DM_REMOTE
TDOM1 TYPE=TDOMAIN ACCESSPOINTID="JEFF"
この例では、TDOM1が、ローカルTDomainゲートウェイ・グループと関連付けられたリモート・ドメイン・アクセス・ポイント名として識別されます。ドメイン・ゲートウェイが、通信相手のゲートウェイとともに常にドメイン間セキュリティ・チェックの対象となる場合、ゲートウェイは通信相手がJEFFの名前で通過すると見なします。
| 注意: | ドメイン・ゲートウェイが常にドメイン間のセキュリティ・チェックの対象になる場合で、かつリモート・ドメイン・アクセス・ポイントにCONNECTION_PRINCIPAL_NAMEパラメータが指定されている場合、ゲートウェイは通信相手がそのパラメータで指定された名前で通過すると見なします。 |
DM_EXPORTセクション(DM_LOCAL_SERVICESセクション)では、CORBA環境において、DM_LOCALセクションで定義されたローカル・ドメイン・アクセス・ポイントを通じてエクスポートされるOracle Tuxedoドメインのdomain_nameを指定します。ローカル・ドメイン・アクセス・ポイントに指定されたOracle Tuxedoドメインは、1つ以上のリモートOracle TuxedoドメインのCORBAクライアントからアクセスできます。DM_EXPORTセクションは、CORBA Domains構成では必須です。
DM_EXPORTセクションのエントリの形式は次のとおりです。
service [LACCESSPOINT=local access point name]
[ACL=...]serviceの形式は次のとおりです。
このdomain_nameは、ローカルUBBCONFIGファイルのRESOURCESセクションのDOMAINIDパラメータに割り当てられた名前です。DM_EXPORTセクションでこの名前を入力すると、ローカル・ドメインがリモート・ドメインからのCORBAリクエストを受け付けます。また、ローカル・ドメインがルーティングの中継点として機能する場合のために、ローカル・ドメインのドメイン名以外のドメイン名に対するリクエストを受け付けるserviceエントリを指定することもできます。
オプション・パラメータのACLでは、アクセス制御リスト(ACL)の名前を指定します。ローカル・ドメインはこのリストを使用して、リモートOracle Tuxedo CORBAドメインからのローカル・ドメインへのリクエストを制限します。ACLの名前は、DMCONFIGファイルのDM_ACCESS_CONTROLセクションで定義します。このパラメータを指定しないと、ローカル・ドメインに対するリモート・リクエストについてアクセス制御が実行されません。
この場合は、名前がMUTTのローカル・ドメインが、DM_REMOTEセクションで定義されたリモート・ドメイン・アクセス・ポイントを通じてリモートCORBAリクエストを受け付けます。
DM_IMPORTセクション(DM_REMOTE_SERVICESセクション)では、CORBA環境において、DM_REMOTEセクションで定義されたリモート・ドメイン・アクセス・ポイントを通じてインポートされるOracle Tuxedoドメインのdomain_nameを指定します。リモート・ドメイン・アクセス・ポイントに指定されたOracle Tuxedoドメインは、ローカル・ドメインのCORBAクライアントからアクセスできます。DM_IMPORTセクションは、CORBA Domains構成では必須です。
DM_IMPORTセクションのエントリの形式は次のとおりです。
service [RACCESSPOINT=remote domain access point]
[LACCESSPOINT=local domain access point]
[TRANTIME=...]
このdomain_nameは、リモートUBBCONFIGファイルのRESOURCESセクションのDOMAINIDパラメータに割り当てられた名前です。DM_IMPORTセクションでこの名前を入力すると、リモート・ドメインがローカル・ドメインからのCORBAリクエストを受け付けます。また、リモート・ドメインがルーティングの中継点として機能する場合のために、リモート・ドメインのドメイン名以外のドメイン名に対するリクエストを受け付けるserviceエントリを指定することもできます。
*DM_IMPORT
"//JEFF" RACCESSPOINT=TDOM1
この場合は、名前がJEFFで、リモート・ドメイン・アクセス・ポイントTDOM1と関連付けられているリモート・ドメインが、DM_LOCALセクションで定義されたローカル・ドメイン・アクセス・ポイントを通じてCORBAリクエストを受け付けます。
DM_ACCESS_CONTROLセクションでは、1つ以上のアクセス制御リスト(ACL)の名前を指定し、1つ以上のリモート・ドメイン・アクセス・ポイントを指定された各ACL名に関連付けます。ACL=ACL_NAMEを設定してDM_EXPORTセクションでACLパラメータを使用すると、特定のローカル・ドメイン・アクセス・ポイントを通じてエクスポートされるローカル・ドメインへのアクセスをACL_NAMEと関連付けられたリモート・ドメイン・アクセス・ポイントのみに制限できます。
DM_ACCESS_CONTROLセクションのエントリの形式は次のとおりです。
ACL_NAMEは、アクセス制御リストを指定するために使用されるidentifierです。最大15文字まで使用できます。
ACLIST = identifier [,identifier]
ACLISTには、1つまたは複数のリモート・ドメイン・アクセス・ポイント名をカンマで区切って指定します。ワイルドカード文字(*)を使用すると、DM_REMOTEセクションで定義したすべてのリモート・ドメイン・アクセス・ポイントがローカル・ドメインにアクセスできます。
DM_TDOMAINセクションでは、Oracle Tuxedo CORBAドメインを実装するTDomainゲートウェイのネットワーク・アドレス情報を定義します。DM_TDOMAINセクションでは次の要素を必ず指定します。
DM_TDOMAINセクションでは、1つ以上のWebLogic Serverアプリケーションに関連付けられた1つ以上のリモート・ドメイン・アクセス・ポイントの構成を定義して、アプリケーションでTuxedo CORBAサーバーとWebLogic Server Enterprise JavaBean (EJB)サーバーを結合することもできます。詳細は、Oracle Tuxedoの相互運用性のOracle WebLogic Serverとの相互運用性に関する項を参照してください。
DM_TDOMAINセクションのエントリの形式は次のとおりです。
AccessPoint required_parameters [optional_parameters]
AccessPointは、DM_LOCALセクションのローカル・ドメイン・アクセス・ポイントまたはDM_REMOTEセクションのリモート・ドメイン・アクセス・ポイントを識別するために使用される識別子値です。
NWADDR = string
stringの形式が"0xhex-digits"または"\\xhex-digits"の場合、偶数の有効な16進数を含める必要があります。これらの形式は、TCP/IPアドレスを含む文字配列に内部変換されます。アドレスは、次の2つの形式のいずれかでも構いません。 "//hostname:port_number"
"//#.#.#.#:port_number" これらの形式のうち最初の方では、gethostbyname(3c)経由でアクセスされたローカルで構成された名前解決機能を使用して、アドレスがバインドされるとき、hostnameがTCP/IPホスト・アドレスに対して解決されます。"#.#.#.#"はドットで区切った10進数の形式で、各#は0から255までの10進数です。 Port_numberは、0 - 65535の10進数です(指定された文字列の16進表現)。
*DM_TDOMAIN
LDOM NWADDR="//sanfran.kmart.com:2507"
TDOM1 NWADDR="//sanhose.kmart.com:3186"
この例では、ゲートウェイ・グループLGWGRPに属する(LDOMアクセス・ポイントのDM_LOCALセクションで指定) TDomainゲートウェイが、リモート・ドメインからの接続リクエストをアドレス"//sanfran.kmart.com:2507"でリスニングするように構成されています。また、TDomainゲートウェイは、TDOM1アクセス・ポイントと関連付けられたリモート・ドメインにリクエストを送信するときには"//sanhose.kmart.com:3186"への接続を開始するように構成されています。
DM_TDOMAINセクションのオプション・パラメータについては、『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のリファレンス・ページ「DMCONFIG(5)」を参照してください。
factory_finder.iniファイルでは、ローカル・ドメインで使用できるリモート・ファクトリ・オブジェクトを特定します。また、リモート・ドメインで使用できるローカル・ファクトリ・オブジェクトも特定します。
factory_finder.iniファイルには、DM_REMOTE_FACTORIESおよびDM_LOCAL_FACTORIESという2つのセクションがあります。次の例で明らかなように、factory_finder.iniファイルの形式はDMCONFIGファイルで使用される構文に基づいています。
*DM_REMOTE_FACTORIES
"local_factory_id.factory_kind"
DOMAINID="domain_id"
RNAME="remote_factory_id.factory_kind"
...
*DM_LOCAL_FACTORIES
"factory_id.factory_kind"
...
*DM_REMOTE_FACTORIES
"AccountFactory.FactoryKind"
DOMAINID="MyAccountFactoryDomain"
RNAME="MyAccountFactory.FactoryKind AccountFactoryは、ローカル・ドメインのFactoryFinderにファクトリを登録する名前です。MyAccountFactoryDomainは、リモート・ドメインの名前です。MyAccountFactoryは、リモート・ドメインのFactoryFinderにファクトリを登録する名前です。
| 注意: | Domains構成に参加する2つのCORBAドメインで、factory_id.factory_kind識別子が同じファクトリ・オブジェクトを持つことはできません。詳細は、「factory_finder.iniファイルでの一意のファクトリ・オブジェクト識別子の指定」を参照してください。 |
DM_REMOTE_FACTORIESセクションでは、ローカル・ドメインからアクセスできる(ローカル・ドメインにインポートされる)リモート・ドメインのファクトリ・オブジェクトを指定します。このセクションには、リモート・ファクトリ・オブジェクトの識別子がリストされます。オブジェクト登録時にkind値がFactoryInterfaceに設定された識別子は、このセクションにリストされなければなりません。たとえば、TP Frameworkによって識別子TellerでドメインNorwestに登録されたリモート・ファクトリ・オブジェクトのエントリは、次のように指定されます。
*DM_REMOTE_FACTORIES
"Teller.FactoryInterface"
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"
RNAMEが指定されていない場合、ファクトリ名でfactory_kindを指定し、ファクトリ名を引用符で囲まなければなりません。これらの条件を満たさないと、NameManagerが適切なファクトリを検出できません。factory_kindが指定されていないエントリには、デフォルト値のFactoryInterfaceが適用されます。
以下の例では、ファクトリ・オブジェクトが識別子TellerでドメインNorwestに登録されています。RNAMEが指定されていないので、factory_kind値が指定され、ファクトリ名が引用符で囲まれていることに注意してください。
*DM_REMOTE_FACTORIES
"Teller.FactoryInterface"
DOMAINID="Norwest"
ドメイン構成内でファクトリの識別子が競合する場合があるため、ファクトリ識別子とRNAMEパラメータを使用して、リモート・ファクトリのローカル・ドメインに別の識別子(別名)を指定できます。リスト3-2は、TPフレームワークによってドメインNorwestの識別子BankTellerで登録されたリモート・ファクトリの例を2つ示しています。どちらの例でも、ファクトリはローカル・ドメインでTellerという別名で使用可能になります。
#EXAMPLE 1:
*DM_REMOTE_FACTORIES
Teller
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"
#EXAMPLE 2:
*DM_REMOTE_FACTORIES
"Teller.FactoryInterface"
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"
同じリモート・ファクトリに複数の別名を割り当てることもできます。リスト3-3の例では、リモート・ファクトリがローカル・ドメインにTellerとBankTellerの2つの別名で登録されます。
*DM_REMOTE_FACTORIES
"Teller.FactoryInterface"
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"
"BankTeller.FactoryInterface"
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"
DM_LOCAL_FACTORIESセクションでは、リモート・ドメインからアクセスできる(リモート・ドメインにエクスポートされる)ローカル・ドメインのファクトリ・オブジェクトを指定します。このセクションは、以下の方法で使用できます。
factory_finder.iniにDM_LOCAL_FACTORIESセクションが存在しない場合、または存在しても空の場合、ローカル・ドメインのすべてのファクトリ・オブジェクトがリモート・ドメインで使用できます。これにより、管理者がローカル・ドメインのファクトリ・オブジェクトごとにエントリを設定しなくても、ローカル・ファクトリ・オブジェクトをリモート・ドメインで使用することができます。factory_finder.iniファイルにDM_LOCAL_FACTORIESセクションが存在し、予約されたキーワードのNONEがある場合、そのローカル・ドメインのファクトリ・オブジェクトはリモート・ドメインで使用できません。NONEキーワードを使用すると、管理者はローカル・ドメインのファクトリ・オブジェクトごとにエントリを設定しなくても、ファクトリ・オブジェクトへのアクセスを制限することができます。 ファクトリ・オブジェクト登録時に、kind値がFactoryInterfaceに設定された識別子または名前は、DM_LOCAL_FACTORIESセクションにリストされなければなりません。たとえば、TP Frameworkによって識別子Tellerで登録されたファクトリ・オブジェクトのエントリは、次のように指定されます。
*DM_LOCAL_FACTORIES
"Teller.FactoryInterface"
NameManagerで適切なファクトリ・オブジェクトを検索するには、factory_kindが指定されていなければなりません。factory_kindが指定されていないエントリには、デフォルト値のFactoryInterfaceが適用されます。これにより、CORBA NamingServiceを使用できます。
ドメインAでファイルに挿入されるエントリは次のようになります:
*DM_REMOTE_FACTORIES fA.FactoryInterface DOMAINID=B
このエントリは、ドメインAで識別子fAのファクトリを検索するというリクエストが、ドメインBのFactoryFinderによって実行できることを意味します。もちろん、2つのドメインのUBBCONFIGおよびDMCONFIGファイルで、これらのドメイン間のドメイン・ゲートウェイが接続されるように設定されていなければなりません。
CDE.FactoryInterface DOMAINID=B RNAME=fA.FactoryInterface
このエントリは、ドメインAで識別子CDEのファクトリを検索するというリクエストが、ドメインBのFactoryFinderでID fAを使用して実行されることを意味します。この別の形式は別名と呼ぶ場合もあります。
| 注意: | ファクトリIDの最後には.FactoryInterfaceが必要です。わかりやすくするために、テスト構成についての説明では.FactoryInterfaceが省略されていますが、factory_finder.iniファイルでは必ず必要です。 |
シングル・ドメイン構成では、ロード・バランシングを実現するために複数のファクトリ・オブジェクトが同じ名前であってもかまいません。ただし、Domains構成では、2つのドメインが同じfactory_id.factory_kind識別子のファクトリ・オブジェクトを持つことはできません。2つのドメインで同じ識別子または名前が使用されている場合、ソフトウェアの動作は、Oracle WebLogic Enterpriseを使用してCORBA Domains環境を構成したかどうかによって異なります。
ドメイン全体で識別子や名前が一意であることを確認し、このような問題を回避するには、以下に示す2つの方法があります。
factory_finder.iniファイルでRNAMEパラメータを使用して、ローカルNameManagerでは別名を使用するように設定します。この方法では、ローカル・クライアントもリモート・ファクトリ・オブジェクトへのアクセスに別名を使用するように修正する必要があります。「リモート・ファクトリへの別名の割当て」のコード・リストは、RNAMEパラメータを使用して別名を作成するfactory_finder.iniファイルの例を示しています。
起動時に、マスターNameManagerはfactory_finder.iniファイルを読み込みます。マスターNameManagerの起動される状況によって、factory_finder.iniファイルがすべて読み込まれるか、または一部のみ読み込まれるかが決まります。
factory_finder.iniファイルの全内容が読み込まれます。factory_finder.iniファイルのDM_REMOTE_FACTORIESセクションに追加された新しいファクトリ・オブジェクトはすべて、ローカルのOracle Tuxedoアプリケーションに知らされます。factory_finder.iniファイルのDM_LOCAL_FACTORIESセクションのみ読み込まれます。DM_REMOTE_FACTORIESセクションに追加された新しいファクトリ・オブジェクトはすべて、ローカルのOracle Tuxedoアプリケーションに知らされません。 factory_finder.iniファイルのDM_REMOTE_FACTORIESセクションにファクトリ・オブジェクトのある新しいドメインを追加するときには、マスターNameManagerを終了して再起動する必要があります。NameManagerの詳細は、『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のTMFFNAME (5)を参照してください。
Oracle Tuxedo Domainsコンポーネントを使用して複数のOracle Tuxedo CORBAドメインを接続する場合は、2種類の構成を設定できます。直接接続ドメインと間接接続ドメインという2種類の構成が可能です。どちらの構成も、管理者がDMCONFIGファイルを使用して設定できます。
Domains構成のすべてのドメインは、Domains構成のほかのすべてのドメインとゲートウェイ接続(直接接続)できます。ドメインが直接接続されている場合、リクエストは目的のドメインに直接届きます。
直接接続のDomains構成(「n方向」構成)はドメインの数が少ない場合は合理的ですが、構成に新しいドメインが追加されるたびに2つ、4つ、またはそれ以上の新しいゲートウェイが必要になります。ある時点で、間接接続ドメインを構成することで、送信速度ではなくドメイン接続の管理しやすさを優先しようと考えるようになります。
トラフィック・パターンについて検討する必要があります。相互作用が頻繁には行われないドメインは、ゲートウェイの削除に候補になります。それでも相互作用が行われる可能性はあるため、他のドメインに依然として到達できる必要があります。使用される手法は、ターゲット・ドメインに直接アクセスする中間ドメインを介したリクエストのルーティングです。
たとえば、図3-2に示すA、B、Cの3つのドメインについて考えます。

ドメインAとドメインBは直接接続されており、ドメインBとドメインCも直接接続されていますが、ドメインAとドメインCは直接には接続されていません。ドメインAとCが通信するには、中継点としてドメインBを使用しなければなりません。したがって、ドメインAのDMCONFIGファイルでは、ドメインB経由でドメインCに接続するよう指定し、ドメインCのDMCONFIGファイルでも、ドメインB経由でドメインAに接続するよう指定する必要があります。接続形態は以下のようになります。
Domains A <-> B <-> C
Gateways GAB GBA GBC GCB
ドメインAには、ドメインBに接続するゲートウェイ・プロセスGAB (AからBのゲートウェイ)があります。ドメインAのDMCONFIGファイルでは、GABがドメインBとC間のゲートウェイとして機能するように指定されています。ドメインCのDMCONFIGファイルでも同様に、GCBがBとAに接続されるように構成されています。ドメインBのDMCONFIGファイルには、Aに接続するゲートウェイ・プロセス(GBA)と、Cに接続するゲートウェイ・プロセス(GBC)の2つが設定されています。この構成を間接接続と呼びます。
この間接接続により、AのサーバーがCのオブジェクトに対するリクエストを呼び出した場合、Oracle Tuxedo CORBAサーバーは、ゲートウェイGABにリクエストを送信できることを認識します。Oracle Tuxedoゲートウェイは、Bのパートナ・ゲートウェイがリクエストを自身では処理できないが受入れは可能であることを認識しません。リクエストがドメインBに届くと、GBCを介してCにルーティングされ、Cがリクエストを処理できます。このため、リクエストは1つ追加のホップで処理されます。
ドメインBの2つのゲートウェイを1つにして、Bでホップが追加されないようにすることもできます。この場合、ドメインBでの処理は同じですが、1つのゲートウェイ・プロセスですべて処理されます。
次の例は、直接接続CORBAドメインの構成方法を示しています。これらの例を使用する場合は、APPDIR、TUXCONFIG、TUXDIRの各変数を環境に合せて変更する必要があります。また、テキストが左山カッコ(<)と右山カッコ(>)で囲まれている(たとえば、<App Server Name>など)場合は適切な情報で置換し、山カッコを削除する必要があります。
リスト3-4とリスト3-5に、3つの直接接続ドメイン(Here、ThereおよびYonder)のUBBCONFIGファイルを示します。これらのファイルを使用するには、hostをローカル・マシンの名前で置換する必要があります。
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
#
# RESOURCES
#
*RESOURCES
IPCKEY 123312
DOMAINID HereD
MASTER LAPP
MODEL SHM
LDBAL N#
# MACHINES
#
*MACHINES
<host>LMID=LAPP
APPDIR="/tst1/wle4.2/test_dom/t07:
/tst1/wle4.2/dec_unix/wlemdomai"
TUXCONFIG="/tst1/wle4.2/test_dom/tuxconfig"
TUXDIR="/lclobb/lc"
MAXWSCLIENTS=10
#
# GROUPS
#
*GROUPS
DEFAULT: LMID=LAPP
ICEGRP GRPNO=11 OPENINFO=NONE
GROUP1 GRPNO=21 OPENINFO=NONE
LDMGRP GRPNO=3
LGWGRP GRPNO=4
#
# SERVERS
#
*SERVERS
DEFAULT: CLOPT="-A"
DMADM SRVGRP=LDMGRP SRVID=1
GWADM SRVGRP=LGWGRP SRVID=1
GWTDOMAIN SRVGRP=LGWGRP SRVID=2
TMSYSEVT SRVGRP=ICEGRP SRVID=1
TMFFNAME SRVGRP=ICEGRP SRVID=2
CLOPT="-A -- -N -M -f<FF ini file for Here>"
TMFFNAME SRVGRP=ICEGRP SRVID=3 CLOPT="-A -- -N"
TMFFNAME SRVGRP=ICEGRP SRVID=4 CLOPT="-A -- -F"
<App Server Name>SRVGRP=GROUP1 SRVID=2
ISL SRVGRP=GROUP1 SRVID=1
CLOPT="-A -- -d /dev/tcp -n //<host>:<port>"
#
# SERVICES
#
*SERVICESUBBCONFIG File for the “There” Domain
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
# RESOURCES
#
*RESOURCES
IPCKEY 133445
DOMAINID ThereD
MASTER LAPP1
MODEL SHM
LDBAL N
#
# MACHINES
#
*MACHINES
<host>LMID=LAPP1
APPDIR="D:\test_dom\t07;D:\Iceberg\qa\orb\bld\wlemdomain"
TUXCONFIG="D:\test_dom\tuxconfig"
TUXDIR="D:\Iceberg"
MAXWSCLIENTS=10
#
# GROUPS
#
*GROUPS
DEFAULT LMID=LAPP1
ICEGRP GRPNO=11 OPENINFO=NONE
GROUP1 GRPNO=21 OPENINFO=NONE
LDMGRP GRPNO=3
LGWGRP GRPNO=4
#
# SERVERS
#
*SERVERS
DEFAULT: CLOPT="-A"
DMADM SRVGRP=LDMGRP SRVID=1
GWADM SRVGRP=LGWGRP SRVID=1
GWTDOMAIN SRVGRP=LGWGRP SRVID=2
TMSYSEV SRVGRP=ICEGRP SRVID=1
TMFFNAME SRVGRP=ICEGRP SRVID=2
CLOPT="-A -- -N -M -f<FF ini file for There>"
TMFFNAME SRVGRP=ICEGRP SRVID=3 CLOPT="-A -- -N"
TMFFNAME SRVGRP=ICEGRP SRVID=4 CLOPT="-A -- -F"
<App Server Name>SRVGRP=GROUP1 SRVID=2
ISL SRVGRP=GROUP1 SRVID=1
CLOPT="-A -- -d /dev/tcp -n //<host>:<port>"
#
# SERVICES
#
*SERVICES
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
# RESOURCES
#
*RESOURCES
IPCKEY 123334
DOMAINID YonderD
MASTER LAPP
MODEL SHM
LDBAL N
#
# MACHINES
#
*MACHINES
<host>LMID=LAPP
APPDIR="/tst1/wle4.2/test_dom/t07p:
/tst1/wle4.2/<host3>/wlemdomain"
TUXCONFIG="/tst1/wle4.2/test_dom/<host3>/tuxconfig"
TUXDIR="/lclobb/lc"
MAXWSCLIENTS=10
#
# GROUPS
#
*GROUPS
DEFAULT: LMID=LAPP
ICEGRP GRPNO=11 OPENINFO=NONE
GROUP1 GRPNO=21 OPENINFO=NONE
LDMGRP GRPNO=3
LGWGRP GRPNO=4
#
# SERVERS
#
*SERVERS
DEFAULT: CLOPT="-A"
DMADM SRVGRP=LDMGRP SRVID=1
GWADM SRVGRP=LGWGRP SRVID=1
GWTDOMAIN SRVGRP=LGWGRP SRVID=2
TMSYSEVT SRVGRP=ICEGRP SRVID=1
TMFFNAME SRVGRP=ICEGRP SRVID=2
CLOPT="-A -- -N -M"
TMFFNAME SRVGRP=ICEGRP SRVID=3 CLOPT="-A -- -N"
TMFFNAME SRVGRP=ICEGRP SRVID=4 CLOPT="-A -- -F"
<App Server Name>SRVGRP=GROUP1 SRVID=2
ISL SRVGRP=GROUP1 SRVID=1
CLOPT="-A -- -d /dev/tcp -n //<host>:<port>"
#
# SERVICES
#
*SERVICES
リスト3-6、リスト3-7およびLリスト3-8は、直接接続された3つのドメイン(Here、ThereおよびYonder)のDMCONFIGファイルを示しています。これらのリストをDomains構成で使用するには、Hereドメインのhost1、Thereドメインのhost2およびYonderドメインのhost3を、それぞれローカル・マシンの名前で置き換える必要があります。
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
# Tuxedo Domains Configuration File
#
*DM_RESOURCES VERSION=U22#
# DM_LOCAL
#
*DM_LOCAL LDOM1 GWGRP=LGWGRP TYPE=TDOMAIN ACCESSPOINTID="HereG"#
# DM_REMOTE
#
*DM_REMOTE TDOM1 TYPE=TDOMAIN ACCESSPOINTID="ThereG"
TDOM2 TYPE=TDOMAIN ACCESSPOINTID="YonderG"
#
# DM_TDOMAIN
#
*DM_TDOMAINLDOM1 NWADDR="//<host1>:<tcpport>"
TDOM1 NWADDR="//<host2>:<tcpport>"
TDOM2 NWADDR="//<host3>:<tcpport>"
#
# DM_EXPORT
#
*DM_EXPORT
"//HereD"
#
# DM_IMPORT
#
*DM_IMPORT
"//ThereD" RACCESSPOINT=TDOM1
"//YonderD" RACCESSPOINT=TDOM2 次のコード・リストをDomains構成で使用するには、Thereドメインのhost1、Hereドメインのhost2、およびYonderドメインのhost3を、それぞれローカル・マシンの名前と置き換える必要があります。
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
# Tuxedo Domains Configuration File
#
*DM_RESOURCES VERSION=U22#
# DM_LOCAL
#
*DM_LOCAL LDOM1 GWGRP=LGWGRP TYPE=TDOMAIN ACCESSPOINTID="ThereG"#
# DM_REMOTE
#
*DM_REMOTE TDOM1 TYPE=TDOMAIN ACCESSPOINTID="HereG"
TDOM2 TYPE=TDOMAIN ACCESSPOINTID="YonderG"
#
# DM_TDOMAIN
#
*DM_TDOMAINLDOM1 NWADDR="//<host1>:<tcpport>"
TDOM1 NWADDR="//<host2>:<tcpport>"
TDOM2 NWADDR="//<host3>:<tcpport>"
#
# DM_EXPORT
#
*DM_EXPORT
"//ThereD"
#
# DM_IMPORT
#
*DM_IMPORT
"//HereD" RACCESSPOINT=TDOM1
"//YonderD" RACCESSPOINT=TDOM2 次のコード・リストをDomains構成で使用するには、Yonderドメインのhost1、Hereドメインのhost2、およびThereドメインのhost3を、それぞれローカル・マシンの名前で置き換える必要があります。
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
# Tuxedo Domains Configuration File
#
*DM_RESOURCES VERSION=U22#
# DM_LOCAL
#
*DM_LOCAL LDOM1 GWGRP=LGWGRP TYPE=TDOMAIN ACCESSPOINTID="YonderG"#
# DM_REMOTE
#
*DM_REMOTE TDOM1 TYPE=TDOMAIN ACCESSPOINTID="HereG"
TDOM2 TYPE=TDOMAIN ACCESSPOINTID="ThereG"#
# DM_TDOMAIN
#
*DM_TDOMAINLDOM1 NWADDR="//<host1>:<tcpport>"
TDOM1 NWADDR="//<host2>:<tcpport>"
TDOM2 NWADDR="//<host3>:<tcpport>"
#
# DM_EXPORT
#
*DM_EXPORT
"//YonderG"
#
# DM_IMPORT
#
*DM_IMPORT
"//HereD" RACCESSPOINT=TDOM1
"//ThereD" RACCESSPOINT=TDOM2 リスト3-9およびリスト3-10は、HereドメインとThereドメインのfactory_finder.iniファイルを示しています。Yonderドメインにはfactory_finder.iniファイルは必要ありません。
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
# Factory Finder Initialization file for Domain “Here”
# This is the local domain.
#
# DM_LOCAL_FACTORIES
#
*DM_LOCAL_FACTORIES "AFactory.FactoryInterface"
#
# DM_REMOTE_FACTORIES
#
*DM_REMOTE_FACTORIES
"AFacYonder.FactoryInterface"
DOMAINID="YonderD"
RNAME="AFactory.FactoryInterface"
"BFactory.FactoryInterface"
DOMAINID="YonderD"#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
# Factory Finder Initialization file for Domain “There”
# This is a remote domain.
#
# DM_LOCAL_FACTORIES
#
*DM_LOCAL_FACTORIES
"AFactory.FactoryInterface"
#
# DM_REMOTE_FACTORIES
#
*DM_REMOTE_FACTORIES
"AFacYonder.FactoryInterface"
DOMAINID="YonderD"
RNAME="AFactory.FactoryInterface"
"BFactory.FactoryInterface"
DOMAINID="YonderD"
|