Oracle Tuxedo Domains コンポーネント

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

CORBA Domains の計画とコンフィグレーション

以下の節では、Oracle Tuxedo CORBA Domains 環境のドメインの計画およびコンフィグレーションの方法について説明します。

 


CORBA Domains 環境の概要

Oracle Tuxedo Domains コンフィグレーションは、「Oracle Tuxedo の Domains コンポーネントとは」で説明されているようにコア ATMI ドメイン環境を拡張したものです。Oracle Tuxedo ドメイン (ビジネス アプリケーション) は、完全に管理可能な構造体です。ドメインを参照するプログラミング インタフェースはありません。ドメインを意識するのは管理者のみです。

Oracle Tuxedo Domains コンフィグレーションでは、管理者はそのコンフィグレーションの中でどのサーバがほかのサーバで利用できるかをコンフィグレーションできます。このため、CORBA の観点から見ると、Oracle Tuxedo Domains コンポーネントは Oracle Tuxedo CORBA アプリケーションが相互に作用してリソースを共有するための手段であると言えます。CORBA クライアントと参加アプリケーションは、Domains コンフィグレーションについて何も意識する必要はありません。知っておく必要があるのは、どのファクトリ オブジェクトが利用可能で、どうしたらそのオブジェクトにアクセスできるのかということだけです。

ドメイン間のこの透過性により、管理者は各ドメインのサービスをコンフィグレーションし、複数のドメイン間にリソースを分散することができます。ドメインに関する情報がアプリケーションに存在する場合、コンフィグレーションを変更すると、アプリケーションも同様に作成し直す必要があります。

 


シングル ドメイン通信とマルチ ドメイン通信

次の図は、2 つの Oracle Tuxedo CORBA アプリケーションで構成されたシンプルな Domains コンフィグレーションを示しています。

図 3-1 2 つの CORBA アプリケーションから構成される Domains コンフィグレーション

2 つの CORBA アプリケーションから構成される Domains コンフィグレーション

以降のシングル ドメインとマルチ ドメインに関する説明は、このシンプルな Domains コンフィグレーションに基づいています。

シングル ドメイン通信

以下は、シンプル Domains コンフィグレーションにおける CORBA クライアント X とドメイン A 間のシングル ドメイン通信の手順です。

  1. クライアント X は、Bootstrap オブジェクトを使用してドメイン A に接続します。クライアント アプリケーションは、Bootstrap オブジェクトを使用して FactoryFinder を検索し、その FactoryFinder を使用して、ファクトリにタイプ Q のオブジェクトを要求します (FactoryFinder の呼び出しは、ドメイン A の呼び出しになります)。
  2. FactoryFinder からファクトリが返されると、クライアントはドメイン A でそのファクトリを呼び出します。
  3. ファクトリは、タイプ Q のオブジェクト参照 (Q1) を返します。
  4. クライアントは、ドメイン A でオブジェクト Q1 を呼び出します。

この手順を通じて、クライアントはオブジェクトがどこにあるのか、つまりどのドメインにあるのかについて何も知りません。

クライアント マシンは単純な構造で、必要なインフラストラクチャも少ないため (大部分はスタンドアロン)、クライアントをドメイン A に接続するための管理は比較的単純です。クライアントの主な管理タスクは Oracle Tuxedo ドメインへの接続ですが、実際の管理タスクは、ドメイン A 内の ISL のアドレスを設定することです。

マルチ ドメイン通信

マルチ ドメイン通信の場合、シンプル Domains コンフィグレーションの Q1 はドメイン C にあるオブジェクト R1 のサービスを要求するので、ドメインの境界をまたいで上の手順 1 ~ 4 に対応する処理を実行する必要があります。実際の手順は以下のようになります。

  1. オブジェクト Q1 は Bootstrap オブジェクトを使用して FactoryFinder を検索し、その FactoryFinder を使用して、ファクトリにタイプ R のオブジェクトを要求します。
  2. FactoryFinder からドメイン C のファクトリに対するリファレンスが返されると、オブジェクト Q1 がそのファクトリを呼び出します。
  3. ファクトリは、タイプ R のオブジェクト参照 (R1) を返します。
  4. オブジェクト Q1 がオブジェクト R1 を呼び出します。

クライアント X で、オブジェクト Q1 がドメイン C のファクトリとオブジェクトを取得するには、何らかの管理タスクが必要です。シンプル Domains コンフィグレーションに示すように、ドメイン間通信にはドメイン ゲートウェイを使用します。ドメイン ゲートウェイは、ドメイン内のシステム サーバです。

システム サーバは、ユーザ定義のサーバとは異なり、ネーム サーバ、FactoryFinder、ISL などと共に Oracle Tuxedo 製品の一部として提供されています。ドメイン ゲートウェイは、ドメインの接続ポイントになるので、概念的には ISL と似ています。ただし、ISL と異なり、ドメイン ゲートウェイは別のドメイン ゲートウェイに接続し、それ自身がドメインの接続ポイントになります。つまり、ドメイン ゲートウェイの役割は、別のドメイン ゲートウェイに接続することです。したがって、2 つのドメイン ゲートウェイは相互に協調し合い、別のドメインに存在するオブジェクトの呼び出しが、適切なドメインに確実にルーティングされるようにします。

 


CORBA Domains コンフィグレーションの要素

Oracle Tuxedo CORBA Domains コンフィグレーションは、以下の要素で構成されます。

注意 : アプリケーションは、オブジェクト参照のドメインを認識しません。つまり、アプリケーション側では、オブジェクト参照が参照するドメインを見つけられません。

 


コンフィグレーション ファイルの使い方

CORBA Domains コンフィグレーションの設定には、次の 3 つのコンフィグレーション ファイルを使用します。

CORBA Domains コンフィグレーションの各ドメインでは、これら 3 つのファイルのセットが必要です。管理者は、コンフィグレーション ファイルの各セット内、およびコンフィグレーション ファイルのセット間でコンフィグレーションを調整する必要があります。Domains コンフィグレーションでドメインの数が増えると、コンフィグレーションを調整する手間も増えることになります。

UBBCONFIG ファイル

複数のドメインをコンフィグレーションするには、UBBCONFIG ファイルで以下のパラメータを指定する必要があります。

ドメイン名

シングル Oracle Tuxedo ドメイン (スタンドアロン ドメイン) ではこのパラメータは不要ですが、別のドメインに接続されたドメインでは、DOMAINID を指定する必要があります。このパラメータは、UBBCONFIG ファイルの RESOURCES セクションで次のように指定します。

DOMAINID domain_name

domain_name は、1 ~ 13 文字の範囲で指定しなければなりません。次に例を示します。

DOMAINID headquarters

domain_name は、関連する DMCONFIG ファイルの DM_EXPORT および DM_IMPORT セクションで参照される名前です。domain_name は次の形式で参照されます。

"//domain_name"

二重引用符も参照の一部として必要です。スラッシュ (//) は、この名前が Oracle Tuxedo ATMI ドメインではなく Oracle Tuxedo CORBA ドメインに適用されることを意味します。次に例を示します。

"//headquarters"

企業内の各ドメインには、ユニークな domain_name を指定する必要があります。

ゲートウェイのグループとサーバ名

ほかのすべての Oracle Tuxedo システム サーバと同じように、ゲートウェイのグループとサーバ名を指定する必要があります。たとえば、UBBCONFIG ファイルの GROUPS セクションで次のように指定します。

LGWGRP LMID=LDOM  GRPNO=4

この例では、LGWGRP はユーザが選択した名前です (ここでは「Local Gateway Group」の略と考えられます)。

Oracle Tuxedo ドメイン ゲートウェイ (TDomain ゲートウェイ) のサーバ名は GWTDOMAIN で、ほかのグループ同様、サーバ グループおよびサーバ ID と関連付ける必要があります。GWTDOMAIN 名は、選択したサーバ グループ名と関連付けられた SERVERS セクションで指定します。次に例を示します。

GWTDOMAIN  SRVGRP=LGWGRP  SRVID=1

このエントリにより、TDomain ゲートウェイが使用されていること、および DMCONFIG ファイルに関連情報があることが Oracle Tuxedo CORBA アプリケーションに通知されます。

DMCONFIG ファイル

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 環境のコンフィグレーションには関係ありません。

以降の説明は、次のコード リストで示されているサンプル DMCONFIG ファイルに基づいています。

コード リスト 3-1 Oracle Tuxedo CORBA Domains 環境のサンプル DMCONFIG ファイル
#
#
BEA Tuxedo CORBA Domains コンフィグレーション ファイル
#
*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

DM_RESOURCES セクションでは、グローバルの Domains コンフィグレーション情報、具体的にはユーザ指定のコンフィグレーション バージョン文字列を指定します。このセクションでは、VERSION=string が唯一のパラメータです。string は、現在の DMCONFIG ファイルのバージョン番号を入力できるフィールドです。このフィールドはソフトウェアによってチェックされません。

サンプルの DMCONFIG ファイルでは、VERSION パラメータが次のように Experimental8.9 に設定されています。

*DM_RESOURCES
VERSION=Experimental8.9

DM_LOCAL

DM_LOCAL セクション (DM_LOCAL_DOMAINS セクション) では、1 つ以上のローカル ドメイン アクセス ポイント (論理名) を定義します。定義した各ローカル ドメイン アクセス ポイントについて、このセクションでアクセス ポイントのドメイン ゲートウェイ グループ (TDOMAIN など) を指定します。また、CORBA 環境用に、アクセス ポイントを通じてアクセスできるローカル Oracle Tuxedo ドメインの domain_nameDM_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 ファイルを通じて使用されるローカル ドメイン アクセス ポイントの論理名には影響しません。

以下は、必須パラメータです。

GWGRP = identifier

このパラメータでは、このローカル ドメイン アクセス ポイントに関連付けられたドメイン ゲートウェイ サーバ グループの名前 (UBBCONFIG ファイルの GROUPS セクションで指定された名前) を指定します。

TYPE = TDOMAIN

TYPE パラメータは、Oracle Tuxedo CORBA 環境の TDomain ゲートウェイを使用することを指定するために必要です。

ACCESSPOINTID = string

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 のファイル形式とデータ記述方法』のリファレンス ページ DMCONFIG(5) を参照してください。

DM_REMOTE

DM_REMOTE セクション (DM_REMOTE_DOMAINS セクション) では、1 つ以上のリモート ドメイン アクセス ポイント (論理名) を定義します。定義した各リモート ドメイン アクセス ポイントについて、このセクションでアクセス ポイントのドメイン ゲートウェイ グループ (TDOMAIN など) を指定します。また、CORBA 環境用に、アクセス ポイントを通じてアクセスできるリモート Oracle Tuxedo ドメインの domain_nameDM_IMPORT セクションで指定します。リモート ドメインは、ローカル ドメインの CORBA クライアントからリモート ドメイン アクセス ポイントを通じてアクセス可能になります。

このセクションでは、複数のリモート ドメイン アクセス ポイントを定義できます。リモート ドメインと通信するためにこの Oracle Tuxedo ドメインで使用される各ドメイン ゲートウェイ グループについて 1 つ以上を定義できます。

DM_REMOTE セクションのエントリの形式は次のとおりです。

RemoteAccessPoint required_parameters

RemoteAccessPoint は、UBBCONFIG ファイルで定義された特定のゲートウェイ グループから特定のリモート ドメインにアクセスできるようにするために選択したリモート ドメイン アクセス ポイント識別子 (論理名) です。リモート ドメイン アクセス ポイントは、ローカル ドメインまたはリモート ドメインの UBBCONFIG ファイルで指定された domain_name またはゲートウェイ グループと同じ名前ではありません。リモート ドメイン アクセス ポイントは DMCONFIG 内でのみ使用される名前であり、UBBCONFIG が変更された場合の影響を限定します。UBBCONFIG の変更はリモート ドメイン アクセス ポイントに定義されたパラメータのみに影響し、DMCONFIG ファイルを通じて使用されるリモート ドメイン アクセス ポイントの論理名には影響しません。

必須パラメータは以下のとおりです。

TYPE = TDOMAIN

TYPE パラメータは、Oracle Tuxedo CORBA 環境の 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_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"

この domain_name は、ローカル UBBCONFIG ファイルの RESOURCES セクションの DOMAINID パラメータに割り当てられた名前です。DM_EXPORT セクションでこの名前を入力すると、ローカル ドメインがリモート ドメインからの CORBA 要求を受け付けます。また、ローカル ドメインがルーティングの中継点として機能する場合のために、ローカル ドメインのドメイン名以外のドメイン名に対する要求を受け付ける service エントリを指定することもできます。

オプション パラメータの ACL では、アクセス制御リスト (ACL) の名前を指定します。ローカル ドメインはこのリストを使用して、リモート Oracle Tuxedo CORBA ドメインからのローカル ドメインへの要求を制限します。ACL の名前は、DMCONFIG ファイルの DM_ACCESS_CONTROL セクションで定義します。このパラメータを指定しないと、ローカル ドメインに対するリモート要求についてアクセス制御が実行されません。

たとえば、次の例を考えます。

*DM_EXPORT
"//MUTT"

この場合は、名前が MUTT のローカル ドメインが、DM_REMOTE セクションで定義されたリモート ドメイン アクセス ポイントを通じてリモート CORBA 要求を受け付けます。

DM_IMPORT

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=...]

service の形式は次のとおりです。

"//domain_name"

この domain_name は、リモート UBBCONFIG ファイルの RESOURCES セクションの DOMAINID パラメータに割り当てられた名前です。DM_IMPORT セクションでこの名前を入力すると、リモート ドメインがローカル ドメインからの CORBA 要求を受け付けます。また、リモート ドメインがルーティングの中継点として機能する場合のために、リモート ドメインのドメイン名以外のドメイン名に対する要求を受け付ける service エントリを指定することもできます。

たとえば、次の例を考えます。

*DM_IMPORT
"//JEFF" RACCESSPOINT=TDOM1

この場合は、名前が JEFF で、リモート ドメイン アクセス ポイント TDOM1 と関連付けられているリモート ドメインが、DM_LOCAL セクションで定義されたローカル ドメイン アクセス ポイントを通じて CORBA 要求を受け付けます。

DM_ACCESS_CONTROL

DM_ACCESS_CONTROL セクションでは、1 つ以上のアクセス制御リスト (ACL) の名前を指定し、1 つ以上のリモート ドメイン アクセス ポイントを指定された各 ACL 名に関連付けます。ACL=ACL_NAME を設定して DM_EXPORT セクションで ACL パラメータを使用すると、特定のローカル ドメイン アクセス ポイントを通じてエクスポートされるローカル ドメインへのアクセスを ACL_NAME と関連付けられたリモート ドメイン アクセス ポイントのみに制限できます。

DM_ACCESS_CONTROL セクションのエントリの形式は次のとおりです。

ACL_NAME required_parameters

ACL_NAME は、アクセス制御リストを指定するために使用される identifier です。最大 15 文字まで使用できます。

以下は、必須パラメータです。

ACLIST = identifier [,identifier]

ACLIST には、1 つまたは複数のリモート ドメイン アクセス ポイント名をカンマで区切って指定します。ワイルドカード文字 (*) を使用すると、DM_REMOTE セクションで定義したすべてのリモート ドメイン アクセス ポイントがローカル ドメインにアクセスできることを指定できます。

DM_TDOMAIN

DM_TDOMAIN セクションでは、Oracle Tuxedo CORBA ドメインを実装する TDomain ゲートウェイのネットワーク アドレス情報を定義します。DM_TDOMAIN セクションでは次の要素を必ず指定します。

DM_TDOMAIN セクションでは、1 つ以上の WebLogic Server アプリケーションと関連付けられた 1 つ以上のリモート ドメイン アクセス ポイントのコンフィグレーションを定義して、アプリケーションで Tuxedo CORBA サーバと WebLogic Server エンタープライズ JavaBean (EJB) サーバを結合することもできます。詳細については、『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" 最初の形式の場合、hostname は、アドレスがバインドされるとき (gethostbyname(3c) でローカルでコンフィグレーションされた名前解決機能を使用) に、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 のファイル形式とデータ記述方法』のリファレンス ページ DMCONFIG(5) を参照してください。

factory_finder.ini ファイル

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"
...

次の例は、CORBA ファクトリ オブジェクトの構文を示しています。

*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

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"

Domains コンフィグレーションではファクトリの識別子が競合する場合があるので、ファクトリ識別子と RNAME パラメータを使用して、ローカル ドメインでリモート ファクトリに別の識別子または「エリアス」を指定することができます。次のコード リストは、TP Framework によって識別子 BankTeller でドメイン Norwest に登録されたリモート ファクトリの 2 つの例を示しています。どちらの例でも、ローカル ドメインではファクトリを Teller のエリアスで使用できます。

コード リスト 3-2 リモート ファクトリへのエリアスの割り当て

#EXAMPLE 1:
*DM_REMOTE_FACTORIES
Teller
DOMAINID="Norwest"
RNAME=”BankTeller.FactoryInterface”

#EXAMPLE 2:
*DM_REMOTE_FACTORIES
"Teller.FactoryInterface"
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"

同じリモート ファクトリに複数のエリアスを割り当てることもできます。次のコード リストの例では、リモート ファクトリがローカル ドメインに TellerBankTeller の 2 つのエリアスで登録されます。

コード リスト 3-3 リモート ファクトリへの複数のエリアスの割り当て

*DM_REMOTE_FACTORIES
"Teller.FactoryInterface"
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"
"BankTeller.FactoryInterface"
DOMAINID="Norwest"
RNAME="BankTeller.FactoryInterface"

DM_LOCAL_FACTORIES

DM_LOCAL_FACTORIES セクションでは、リモート ドメインからアクセスできる (リモート ドメインにエクスポートされる) ローカル ドメインのファクトリ オブジェクトを指定します。このセクションは、以下の方法で使用できます。

ファクトリ オブジェクト登録時に、kind 値が FactoryInterface に設定された識別子または名前は、DM_LOCAL_FACTORIES セクションにリストされなければなりません。たとえば、TP Framework によって識別子 Teller で登録されたファクトリ オブジェクトのエントリは、次のように指定されます。

*DM_LOCAL_FACTORIES
"Teller.FactoryInterface"

NameManager で適切なファクトリ オブジェクトを検索するには、factory_kind が指定されていなければなりません。factory_kind が指定されていないエントリには、デフォルト値の FactoryInterface が適用されます。これにより、CORBA NamingService を使用できます。

ドメイン A の factory_finder.ini に挿入されるエントリの形式は次のとおりです。

*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 ファイルでは必ず必要です。

関連項目

 


factory_finder.ini ファイルでのユニークなファクトリ オブジェクト識別子の指定

シングル ドメイン コンフィグレーションでは、ロード バランシングを実現するために複数のファクトリ オブジェクトが同じ名前であってもかまいません。ただし、Domains コンフィグレーションでは、2 つのドメインが同じ factory_id.factory_kind 識別子のファクトリ オブジェクトを持つことはできません。2 つのドメインで同じ識別子または名前が使用されている場合、ソフトウェアの動作は、Oracle WebLogic Enterprise を使用して CORBA Domains 環境をコンフィグレーションしたかどうかによって異なります。

ドメイン全体で識別子や名前がユニークであることを確認し、このような問題を回避するには、以下に示す 2 つの方法があります。

 


factory_finder.ini ファイルの処理

起動時に、マスタ NameManager は factory_finder.ini ファイルを読み込みます。マスタ NameManager の起動される状況によって、factory_finder.ini ファイルがすべて読み込まれるか、または一部のみ読み込まれるかが決まります。

factory_finder.ini ファイルの DM_REMOTE_FACTORIES セクションにファクトリ オブジェクトのある新しいドメインを追加するときには、マスタ NameManager を終了して再起動する必要があります。NameManager の詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の TMFFNAME(5) を参照してください。

 


CORBA Domains コンフィグレーションの種類

Oracle Tuxedo Domains コンポーネントを使用して複数の Oracle Tuxedo CORBA ドメインを接続する場合は、2 種類のコンフィグレーションを設定できます。直接接続ドメインと間接接続ドメインという 2 種類のコンフィグレーションが可能です。どちらのコンフィグレーションも、管理者が DMCONFIG ファイルを使用して設定できます。

直接接続ドメイン

Domains コンフィグレーションのすべてのドメインは、Domains コンフィグレーションのほかのすべてのドメインとゲートウェイ接続 (直接接続) できます。ドメインが直接接続されている場合、要求は目的のドメインに直接届きます。

直接接続の Domains コンフィグレーション (「n 方向」コンフィグレーション) はドメインの数が少ない場合は合理的ですが、コンフィグレーションに新しいドメインが追加されるたびに 2 つ、4 つ、またはそれ以上の新しいゲートウェイが必要になります。ある時点で、間接接続ドメインをコンフィグレーションすることで、送信速度ではなくドメイン接続の管理しやすさを優先しようと考えるようになります。

間接接続ドメイン

まずは、トラフィックのパターンを分析する必要があります。データをやり取りする頻度が低いドメインは、ゲートウェイ削除の対象になります。ただし、ゲートウェイを削除した後も、ほかのドメインとデータをやり取りする経路を残しておく必要があります。このような場合に使用されるのが、目的のドメインに直接アクセスできる中間ドメインを経由して要求を送信する方法です。

たとえば、次の図の 3 つのドメイン A、B、および C を考えてください。

図 3-2 間接接続ドメイン

間接接続ドメイン

ドメイン A とドメイン B は直接接続されており、ドメイン B とドメイン C も直接接続されていますが、ドメイン A とドメイン C は直接には接続されていません。ドメイン A と C が通信するには、中継点としてドメイン B を使用しなければなりません。したがって、ドメイン A の DMCONFIG ファイルでは、ドメイン B 経由でドメイン C に接続するよう指定し、ドメイン C の DMCONFIG ファイルでも、ドメイン B 経由でドメイン A に接続するよう指定する必要があります。接続形態は以下のようになります。

ドメイン     A   <->  B <-> C
ゲートウェイ        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 Domains コンフィグレーションの例

以下の例は、直接接続された CORBA ドメインをコンフィグレーションする方法を示しています。実際に使用する場合、システム環境に応じて、環境変数 APPDIRTUXCONFIG、および TUXDIR を変更しなければなりません。また、角括弧 (< と >) で囲まれている部分 (<App Server Name> など) は適切な情報に読み替え、実際には角括弧を外します。

UBBCONFIG ファイルの例

次の 3 つのコード リストは、直接接続された 3 つのドメイン (HereThere、および Yonder) の UBBCONFIG ファイルを示しています。これらのファイルを使用するには、host をローカル マシンの名前に置き換える必要があります。

コード リスト 3-4 Here ドメインの UBBCONFIG ファイル
#
# 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
#
*SERVICES
There ドメインの UBBCONFIG ファイル
#
# 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
コード リスト 3-5 Yonder ドメインの UBBCONFIG ファイル
#	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

DMCONFIG ファイルの例

次の 3 つのコード リストは、直接接続された 3 つのドメイン (HereThere、および Yonder) の DMCONFIG ファイルを示しています。これらのコード リストを Domains コンフィグレーションで使用するには、Here ドメインの host1There ドメインの host2、および Yonder ドメインの host3 を、それぞれローカル マシンの名前と置き換える必要があります。

コード リスト 3-6 3 ドメイン コンフィグレーションにおける Here ドメインのローカル マシン用 DMCONFIG ファイル
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
# Tuxedo Domains コンフィグレーション ファイル
#
*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_TDOMAIN
    LDOM1   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 ドメインの host1Here ドメインの host2、および Yonder ドメインの host3 を、それぞれローカル マシンの名前と置き換える必要があります。

コード リスト 3-7 3 ドメイン コンフィグレーションにおける There ドメインの DMCONFIG ファイル
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
# Tuxedo Domains コンフィグレーション ファイル
#
*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_TDOMAIN
    LDOM1   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 ドメインの host1Here ドメインの host2、および There ドメインの host3 を、それぞれローカル マシンの名前と置き換える必要があります。

コード リスト 3-8 3 ドメイン コンフィグレーションにおける Yonder ドメインの DMCONFIG ファイル
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
# Tuxedo Domains コンフィグレーション ファイル
#
*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_TDOMAIN
    LDOM1   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

factory_finder.ini ファイルの例

以下の 2 つのコード リストは、Here ドメインと There ドメインの factory_finder.ini ファイルを示しています。Yonder ドメインには factory_finder.ini ファイルは必要ありません。

コード リスト 3-9 Here ローカル ドメインの factory_finder.ini ファイル
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
# ドメイン「Here」の FactoryFinder 初期化ファイル
# これはローカル ドメイン
#
# 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"
コード リスト 3-10 There リモート ドメインの factory_finder.ini ファイル
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#ドメイン「There」の FactoryFinder 初期化ファイル
# これはリモート ドメイン
#
# 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"

  ページの先頭       前  次