このトピックでは、CORBAアプリケーションを例に、Oracle Tuxedo CORBA環境でのアプリケーションの分散方法を説明します。
注意:
|
Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1で非推奨になり、サポートされなくなりました。すべてのOracle Tuxedo CORBA JavaクライアントおよびOracle Tuxedo CORBA JavaクライアントORBのテキスト・リファレンスとコード・サンプルは、サード・パーティ製のJava ORBライブラリを実装または実行する際の参考や、プログラマの参照用としてのみ使用してください。
|
サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。
アプリケーションを分散すると、アプリケーションのある部分を選択して論理的にグループ化し、そのグループを実行する場所を選択できます。アプリケーションの分散は、
UBBCONFIGファイルの
GROUPSセクションに複数のエントリを作成し、アプリケーションのリソースまたはタスクをグループ間に分割することによって行います。サーバーのグループを作成することにより、非常に大規模なアプリケーションをコンポーネント・ビジネス・アプリケーションに分割し、これらの各論理コンポーネントを管理可能なサイズで最適な場所に配置できます。
分散アプリケーションの利点には、次のようなものがあります。
•
|
スケーラビリティ - アプリケーションで対処できる負荷を増やすため、次のことを行います。
|
•
|
グループ内に追加のサーバー・プロセスをもたらします。
|
•
|
アプリケーションにマシンを追加し、複数のマシンにグループを再分散します。
|
•
|
アプリケーション内のほかのマシンに対してグループをレプリケートし、ロード・バランシングを行います。
|
•
|
データベースをセグメントに分割し、これらの個別のデータベース・セグメントを扱うグループに到達するデータ依存型ルーティングを使用します(Oracle Tuxedo ATMIシステム)。
|
Oracle Tuxedo CORBAシステムでは、ファクトリ・ベース・ルーティングを使用して、特定のCORBAインタフェースを複数のサーバー・グループ(必要な場合は複数のマシン)に分散できます。この機能を使用して処理負荷を分散し、同時に実行されている、リソースの集中するアプリケーション同士が、使用可能なCPU、メモリー、ディスクI/Oおよびネットワーク・リソースをめぐって競合する場合に発生する処理のボトルネックを防ぐことができます。ファクトリ・ベース・ルーティングの使用例は、
2-10ページの「ファクトリ・ベース・ルーティングによるスケーリング」を参照してください。
•
|
開発と保守の容易性 - ビジネス・アプリケーション・ロジックを適切に定義されたメッセージまたはインタフェースを介して通信するサービスまたはコンポーネントに分割することにより、開発と保守の双方を、同様に分割して、簡略化できます。
|
•
|
信頼性 - 複数のマシンを使用中にそのうちの1つが停止しても、それ以外のマシンは動作を続行できます。同様に、グループ内に複数のサーバー・プロセスがあってそのうちの1つが失敗しても、それ以外のプロセスを使用して作業を行えます。最後に、マシンが停止しても、アプリケーション内に複数のマシンがあれば、それらのほかのマシンを使用して負荷を処理できます。
|
•
|
自律的なアクションの調整 - アプリケーションが個別になっていれば、アプリケーション間で、自律的なアクションを1つの論理的な作業単位 として調整できます。自律的なアクション とは、複数のサーバー・グループと複数のリソース・マネージャ・インタフェースが関与するアクションです。
|
•
|
Oracle TuxedoサービスまたはOracle Tuxedo CORBAインタフェースに透過的にアクセスできます。
|
•
|
Oracle Tuxedoでは、データ依存型のデータ分離を行えます。
|
•
|
Oracle Tuxedo CORBAでは、CORBAオブジェクトを複数グループまたは複数マシンに分割したり、アプリケーション・ファクトリ・インタフェースおよびアプリケーション・インタフェースを分散したりできます。
|
データ依存型ルーティングの使用(Oracle Tuxedo ATMIサーバーのみ)
注意:
|
このトピックは、Oracle Tuxedoサーバーにのみ適用されます。
|
データ依存型ルーティングは、クライアント(またはクライアントとして機能しているサーバー)により、送信されたバッファに含まれるデータ値に基づいて特定のグループ内のサーバーにサービス・リクエストがルーティングされるメカニズムです。サービス・コールの内部コードの中で、Oracle Tuxedoは、データ・フィールドを掲示板の共有メモリー内で検出されるルーティング基準と比較することにより宛先サーバーを選択します。
所定のどのサービスについても、
UBBCONFIGファイルの
SERVICESセクションでルーティング基準識別子を指定できます。ルーティング基準識別子(特にサーバー・グループに対するデータ範囲のマッピング)は、
ROUTINGセクションで指定します。
•
|
グループ内のサーバーに割り当てられたサービス・リクエストは、データ値に基づいています。
|
•
|
ルーティングは、掲示板の基準を使用し、サーバー呼出し中に発生します。
|
•
|
サービスに対するルーティング基準識別子は、 UBBCONFIGファイルの SERVICESセクションで指定されます。
|
•
|
ルーティング基準識別子は、 UBBCONFIGファイルの UBBCONFIGセクションで定義されます。
|
表3-1では、クライアント・リクエストがサーバーにルーティングされるしくみを説明します。このサンプルでは、
bankappと呼ばれる銀行取引アプリケーションでデータ依存型ルーティングが使用されています。
bankappには、3つのグループ(
BANKB1、
BANKB2、および
BANKB3)と、2つのルーティング基準(
Account_IDおよび
Branch_ID)があります。サービス
WITHDRAW、
DEPOSIT、および
INQUIRYは、
Account_IDフィールドを使用してルーティングされます。サービス
OPENおよび
CLOSEは、
Branch_IDフィールドを使用してルーティングされます。
表3-1
サンプル分散アプリケーションのデータ依存型ルーティング基準
|
|
|
|
Account_ID: 10000 - 49999
|
WITHDRAW、DEPOSITおよびINQUIRY
|
|
|
|
Account_ID: 50000 - 79999
|
WITHDRAW、DEPOSITおよびINQUIRY
|
|
|
|
Account_ID: 80000 - 109999
|
WITHDRAW、DEPOSITおよびINQUIRY
|
|
|
分散アプリケーションにおけるUBBCONFIGセクションの例
リスト3-1は、Oracle Tuxedoシステムでデータ依存型ルーティングを実現するための構成ファイルにおける、
GROUPS、
SERVICES、および
ROUTINGの各セクションを含む
UBBCONFIGファイルの例を示します。
*GROUPS
BANKB1 GRPNO=1
BANKB2 GRPNO=2
BANKB3 GRPNO=3
#
*SERVICES
WITHDRAW ROUTING=ACCOUNT_ID
DEPOSIT ROUTING=ACCOUNT_ID
INQUIRY ROUTING=ACCOUNT_ID
OPEN_ACCT ROUTING=BRANCH_ID
CLOSE_ACCT ROUTING=BRANCH_ID
#
*ROUTING
ACCOUNT_ID FIELD=ACCOUNT_ID BUFTYPE=���FML���
RANGES=���MIN - 9999:*,
10000-49999:BANKB1,
50000-79999:BANKB2,
80000-109999:BANKB3,
*:*���
BRANCH_ID FIELD=BRANCH_ID BUFTYPE=���FML���
RANGES=���MIN - 0:*,
1-4:BANKB1,
5-7:BANKB2,
8-10:BANKB3,
*:*���
UBBCONFIGファイルの詳細は、
Oracle Tuxedoアプリケーションの設定の構成ファイルの作成に関する項を参照してください。
分散アプリケーションにおけるUBBCONFIGファイルについて
UBBCONFIGファイルには、次のようなデータ依存型ルーティング(Oracle Tuxedo)またはファクトリ・ベース・ルーティング(Oracle Tuxedo CORBA)の説明が含まれます。
•
|
GROUPSセクションには、システムを分散するために必要な数のサーバー・グループが挿入されます。これにより、システムはリクエストを特定グループのサーバーにルーティングできるようになります。これらのグループは、すべて同じサイトに設定することも( SHMモード)、ネットワーク化がなされている場合に複数のサイトに分散することも( MPモード)できます。
|
•
|
Oracle Tuxedoでデータ依存型ルーティングを行うには、 SERVICESセクションに、 ROUTINGパラメータを使用する各サービスのルーティング基準がリストされている必要があります。
|
注意:
|
サービスに複数のエントリがあり、それぞれが異なった SRVGRPパラメータを備えている場合、すべてのエントリで、サービスに対する一貫性を確保するために、 ROUTINGの設定を同じにしなければなりません。1つのサービスは、1つのフィールドにしかルーティングできず、このフィールドは、同じサービスでは同じものにする必要があります。
|
•
|
Oracle Tuxedo CORBAでファクトリ・ベース・ルーティングを行うには、 INTERFACESセクションに、 FACTORYROUTINGパラメータを使用する各CORBAインタフェースのルーティング基準名がリストされている必要があります。このパラメータは、 ROUTINGセクションで定義されたルーティング基準名に設定されます。
|
•
|
構成ファイルに ROUTINGセクションを追加して、システムがリクエストを特定グループのサーバーに送信できるように、データ範囲とグループ間のマッピングを示します。 ROUTINGセクションの各項目には、 INTERFACESセクションで使用される識別子(Oracle Tuxedo ATMIの場合)または SERVICESセクションで使用される識別子(Oracle Tuxedoの場合)が含まれます。
|
GROUPSセクションのパラメータは、分散トランザクション処理に関する次の2つの重要な側面を実装します。
•
|
パラメータにより、サーバー・グループが特定の LMIDおよびリソース・マネージャの特定のインスタンスに関連付けられます。
|
•
|
サーバー・グループに対して、代替マシンを示す別の LMIDを関連付けることにより、サーバー・グループを代替マシンに移行できます(ただし、 MIGRATEオプションが指定されている場合)。
|
表3-2に、
GROUPSセクションのパラメータを示します。
表3-2
GROUPSセクションで指定されるパラメータ
|
|
|
このサーバー・グループがこの特定のマシン上で実行されることを示すには、LMIDを MACHINESセクションに割り当てる必要があります。値の後に、カンマで区切って別の LMIDを指定し、代替マシンを設定することもできます。 MIGRATEオプションが指定されている場合は、サーバー・グループをこの代替マシンに移行できます。グループ内のサーバーを移行するには、 RESTART=Yを指定する必要があります。
|
|
このサーバー・グループにグループ番号を示す数値を関連付けます。0より大きく、30000未満の番号を指定する必要があります。番号は、この構成ファイルの GROUPSセクションのエントリの中でユニークでなければなりません(必須)
|
|
このサーバー・グループに関連付けるトランザクション管理サーバー( TMS)を指定します。
|
|
このサーバー・グループ用に起動する TMSNAMEのコピー数を指定します。最小値は 2です。値を指定しない場合は、デフォルトの 3が指定されます。サーバー・グループ用に起動された TMSNAMEサーバーはすべて、 MSSQセットで自動的に設定されます(オプション)
|
|
特定のリソース・マネージャの特定のインスタンスを開くために必要な情報を指定するか、またはそのような情報がこのサーバー・グループには不要であることを示します。リソース・マネージャを OPENINFOパラメータで指定した場合、データベース名やアクセス・モードなどの情報が含まれます。値の文字列全体を256文字以下とし、二重引用符で囲む必要があります。 OPENINFO文字列の形式は、基底のリソース・マネージャのベンダーごとに異なります。ベンダー固有の文字列の先頭は、 rm_name:となります。これはベンダーのトランザクション・インタフェース(XAインタフェース)の公開名の直後にコロン( :)を付けたものです。
TMSNAMEが設定されていないか、 TMSに設定されている場合、 OPENINFOパラメータは無視されます。 TMSNAMEが設定されているが、 OPENINFO文字列の設定がnull文字列( "")になっている場合、またはこのパラメータがエントリ内に登場しない場合は、グループのリソース・マネージャが存在しているが、openオペレーションを実行するための情報を必要としていないことを意味します。
|
|
データベースを閉じるときにリソース・マネージャが必要とする情報を指定します。このパラメータは省略することも、null文字列を指定することもできます。デフォルトはnull文字列です。
|
SERVICESセクションのパラメータは、アプリケーション・サービスの処理方法を制御します。このセクションのエントリの行は、識別子名によってサービスと関連付けられます。
SRVGRPパラメータは、1つのサービスを複数のサーバーにリンクするために用意されています。このパラメータは、サービスのインスタンスを示すパラメータを特定のサーバー・グループに関連付けます。
SERVICESセクションには、特にOracle Tuxedo ATMIサービスを使用するOracle Tuxedo CORBAアプリケーションの分散トランザクション処理(DTP)に関連付けられるパラメータが2つ(
AUTOTRANと
TRANTIME)あります。
表3-3は、
SERVICESセクションのパラメータの説明です。
表3-3
SERVICESセクションで指定されるパラメータ
|
|
|
このサービスで受信されたメッセージがすでにトランザクション・モードではない場合に、自動的にトランザクションを開始するかどうかを判断します。デフォルト値は、 Nです。このパラメータの使用については、アプリケーションのサービスをコーディングするプログラマとの間で調整を行ってください。
|
|
このサービスで自動的に開始されたトランザクションの、タイムアウト値を秒単位で指定します。デフォルトは30秒です。これを指定するのは、 AUTOTRAN=Yや、ほかのタイムアウト値が必要な場合のみです。
|
リスト3-2
ProductionサンプルのSERVICESセクション
# Publish Tuxedo Teller application services
#
DEBIT
AUTOTRAN=Y
CREDIT
AUTOTRAN=Y
CURRBALANCE
AUTOTRAN=Y
INTERFACESセクションのパラメータは、アプリケーション・インタフェースの処理方法を制御します。このセクションのエントリの行は、識別子名によってインタフェースと関連付けられます。
SRVGRPパラメータは、1つのインタフェースを複数のサーバーにリンクするために用意されています。このパラメータは、インタフェースのインスタンスを示すパラメータを特定のサーバー・グループに関連付けます。
INTERFACESセクションには、特に分散トランザクション処理(DTP)に関連付けられるパラメータが3つ(
FACTORYROUTING、
AUTOTRAN、および
TRANTIME)あります。
表3-4は、
INTERFACESセクションのパラメータの説明です。
表3-4
INTERFACESセクションで指定されるパラメータ
|
|
FACTORYROUTING = criterion-name
|
このOracle Tuxedo CORBAインタフェースのファクトリ・ベース・ルーティングに使用されるルーティング基準名を指定します。ファクトリ・ベース・ルーティングをリクエストしているインタフェースに対して FACTORYROUTINGパラメータを指定する必要があります。
|
|
このインタフェースで受信されたメッセージがすでにトランザクション・モードではない場合に、自動的にトランザクションを開始するかどうかを判断します。デフォルト値は、 Nです。このパラメータの使用については、アプリケーションのICFファイルの transaction policyオプションの設定とパラメータが一致するように、アプリケーションのインタフェースをコーディングするプログラマとの間で調整を行ってください。
|
|
このインタフェースで自動的に開始されたトランザクションの、タイムアウト値を秒単位で指定します。デフォルトは30秒です。これを指定するのは、 AUTOTRAN=Yおよびデフォルト以外のタイムアウト値が必要な場合のみです。
|
|
CORBAインタフェースがシステムに与えると予想される相対的な負荷を表す、1から100の間の任意の数値を指定します。数の設定スキームは、このアプリケーションで使用されるほかのCORBAインタフェースに割り当てられたLOAD数値を基準としています。デフォルトは50です。この値は、Oracle Tuxedoシステムがリクエストのルーティング先サーバーを選択する際に使用されます。
|
リスト3-3に、
INTERFACESセクションの例を示します。
*INTERFACES
"IDL:beasys.com/UniversityP/Registrar:1.0"
FACTORYROUTING = STU_ID
AUTOTRAN=Y
TRANTIME=50
"IDL:beasys.com/BillingP/Teller:1.0"
FACTORYROUTING = ACT_NUM
AUTOTRAN=Y
Oracle Tuxedoのデータ依存型ルーティングまたはOracle Tuxedo CORBAファクトリ・ベース・ルーティングをサポートする
ROUTINGパラメータの詳細は、
Oracle Tuxedoアプリケーションの設定の構成ファイルの作成に関する項を参照してください。
リスト3-4は、Productionサンプル・アプリケーションでファクトリ・ベース・ルーティングに使用される
UBBCONFIGファイルの
ROUTINGセクションを示しています。
リスト3-4
ProductionサンプルのROUTINGセクション
*ROUTING
STU_ID
FIELD = "student_id"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "100001-100005:ORA_GRP1,100006-100010:ORA_GRP2"
ACT_NUM
FIELD = "account_number"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "200010-200014:APP_GRP1,200015-200019:APP_GRP2"
factory_finder.iniの構成(CORBAアプリケーションのみ)
CORBAアプリケーションの場合、複数ドメインにわたってファクトリ・ベース・ルーティングを構成するには、現在の(ローカル)ドメインで使用されているが、別の(リモート)ドメインに存在するファクトリ・オブジェクトを識別するために、
factory_finder.iniファイルを構成する必要があります。詳細は、
『Oracle Tuxedo Domainsコンポーネントの使用』のCORBAアプリケーションの複数ドメインの構成に関する項を参照してください。
ルーティングをサポートするためのドメイン・ゲートウェイ構成ファイルの変更
この項はOracle Tuxedoのみを対象とし、ルーティングをサポートするためにドメイン・ゲートウェイ構成を変更する方法と、この処理が必要である理由を説明します。ドメイン・ゲートウェイ構成ファイルの詳細は、
『Oracle Tuxedo Domainsコンポーネントの使用』のCORBAアプリケーションの複数ドメインの構成に関する項を参照してください。
ドメイン・ゲートウェイ構成情報は、
BDMCONFIGという名前のバイナリ・ファイルに格納されます。
DMCONFIGファイル(ASCII)は、任意のテキスト・エディタで作成および編集します。コンパイル済の
BDMCONFIGファイルは、システムの実行中に
dmadmin(1)コマンドを使用して更新できます。
Domains機能を必要とする各Oracle Tuxedoアプリケーションには、
BDMCONFIGファイルを1つ作成する必要があります。
BDMCONFIGファイルへのアクセスは、Domains管理サーバーである
DMADM(5)から行います。ゲートウェイ・グループが起動されると、ゲートウェイ管理サーバーである
GWADM(5)は、そのグループに必要な構成のコピーを
DMADMサーバーにリクエストします。また、
GWADMサーバーと
DMADMサーバーは、構成における実行時の変更が、対応するドメイン・ゲートウェイ・グループに反映されるようにします。
注意:
|
DMCONFIGファイルの変更の詳細は、 『Oracle Tuxedo Domainsコンポーネントの使用』のCORBAアプリケーションの複数ドメインの構成に関する項を参照してください。
|
DMCONFIGファイルのDM_ROUTINGセクションのパラメータ(Oracle Tuxedo ATMIのみ)
DM_ROUTINGセクションでは、型付きバッファである
FML、
VIEW、
X_C_TYPEおよび
X_COMMONを使用したサービス・リクエストのデータ依存型ルーティングに関する情報を提供します。
DM_ROUTINGセクション内の行にはフォーム
CRITERION_NAMEがあり、
CRITERION_NAMEは
SERVICESセクションに指定されたルーティング・エントリの(識別子の)名前です。
CRITERION_NAMEエントリに使用できるのは15文字までです。
表3-5は、
DM_ROUTINGセクションのパラメータの説明です。
表3-5
DM_ROUTINGセクションで指定されるパラメータ
|
|
|
ルーティング・フィールドの名前を指定します。長さは30文字以下です。このフィールドは、 FMLフィールド表で識別されたフィールド名( FMLバッファの場合)、または FML VIEW表で識別されたフィールド名( VIEW、 X_C_TYPE、または X_COMMONバッファの場合)とみなされます。 FLDTBLDIR環境変数および FIELDTBLS環境変数は FMLフィールド表を見つけるために使用され、 VIEWDIR環境変数および VIEWFILES環境変数は、 FML VIEW表を見つけるために使用されます。 FML32バッファ内のフィールドがルーティングに使用される場合は、 8191以下の数値をフィールド番号として指定します。
|
BUFTYPE = "type1[:subtype1[,subtype2 . . . ]][;type2[:subtype3[, . . . ]]] . . ."
|
このルーティング・エントリで有効なデータ・バッファのタイプとサブタイプのリストを指定します。有効なタイプは、 FML、 VIEW、 X_C_TYPE、および X_COMMONに限定されます。
FMLではサブタイプは指定されません。それ以外のタイプにはサブタイプが必要です。ただし *は使用できません。
タイプとサブタイプのペアのうち、重複するものは同じルーティング基準名として指定できません。タイプとサブタイプのペアがユニークな場合、複数のルーティング・エントリは同じ基準名を持つことができます。このパラメータは必須です。
1つのルーティング・エントリに対して複数のバッファ・タイプを指定する場合は、各バッファ・タイプのルーティング・フィールドのデータ型が同じでなければなりません。フィールド値が設定されていないか( FMLバッファの場合)、または特定の範囲と一致しておらず、ワイルドカードの範囲が指定されていない場合、リモート・サービスの実行をリクエストしたアプリケーション・プロセスに対してエラーが返されます。CORBAおよびEJBでは、ルーティングは許可されていません。TGIOPは有効なバッファ型ではありません。
|
RANGES ="range1:rdom1[,range2:rdom2 ...]"
|
ルーティング・フィールドの範囲と関連付けられたリモート・ドメイン名( RDOM)を指定します。文字列は二重引用符で囲み、 range/RDOMのペアをカンマで区切って順番に並べた形式にします。
範囲は、単一の値(符号付き数値または一重引用符で囲んだ文字列)、または、 lower - upper (lowerとupperはともに符号付き数値または一重引用符で囲んだ文字列)の形式で表します。 lowerには、 upper以下の値を設定します。文字列値に一重引用符を埋め込むには、一重引用符の前にバックスラッシュを2つ挿入します。たとえば、 「O'Brien」は 「O\\'Brien」になります。
•
|
関連する FIELDのデータ型の最小値を示すには、 MINを使用します。文字列とcarrayの最小値にはnull文字列を指定します。文字フィールドの最小値には、 0を指定します。数値の場合、これはフィールドに格納できる最小値です。
|
•
|
関連する FIELDのデータ型の最大値を示すには、 MAXを使用します。文字列とcarrayの最大値には、8進数値の255文字の無限文字列を指定します。文字フィールドの最大値には、単一の8進数値の255文字を指定します。数値の場合は、数値としてフィールドに格納できる最大値です。
|
したがって、 MIN - -5は -5以下のすべての数を表し、 6 - MAXは 6以上のすべての数を表します。
範囲(range)内のメタキャラクタ * (ワイルドカード)は、すでにエントリとして指定した範囲では使用されなかった任意の値を示します。各エントリでは1つのワイルドカードによる範囲指定だけが可能です。*は最後に指定します。続けて範囲を指定すると無視されます。
|
ルーティング・フィールドには、
FMLまたは
VIEWでサポートされている任意のデータ型を指定できます。数値のルーティング・フィールドには、数値による範囲値、文字列のルーティング・フィールドには文字列による範囲値を指定します。
string、carrayおよびcharacterフィールド・タイプの文字列の範囲値は、一重引用符のペアの中に配置する必要があり、前に記号を付けることはできません。shortおよびlong整数値は数値の文字列であり、オプションで前にプラス(
+)またはマイナス(
-)記号を付けることができます。浮動小数点は、Cコンパイラまたは
atof()で使用可能なフォーム(オプションで小数点を含む数値の文字列が続くオプションの記号、およびオプションで記号や空白、整数が続くオプションの
eまたは
E)です。
フィールド値が範囲と一致するときに、関連する
RDOM値には、リクエストがルーティングされるリモート・ドメインを指定します。
RDOM値に
*を指定すると、ゲートウェイ・グループが認識する任意のリモート・ドメインにリクエストが送信されることを示します。
range/RDOMの組合せでは、範囲と
RDOMはコロン(
:)で区切られます。
リスト3-5は、5サイトのドメイン構成を定義する構成ファイルを示します。Central Bank Branchと通信する、4つの銀行支店ドメインがあります。銀行支店のうち、3つがほかのOracle Tuxedoシステム・ドメイン内で実行されています。残りの支店は、別のTPドメインの制御下で実行されており、そのドメインとの通信にはOSI-TPが使用されています。この例では、Central Bankから見たOracle Tuxedoのドメイン・ゲートウェイ構成ファイルを示しています。
DM_TDOMAINセクションは、
b01をミラーリングしたゲートウェイを示しています。
リスト3-5
5サイトのドメイン構成のためのDMCONFIGファイル
# BEA TUXEDO DOMAIN CONFIGURATION FILE FOR THE CENTRAL BANK
#
#
*DM_LOCAL_DOMAINS
# <local domain name> <Gateway Group name> <domain type> <domain id> <log device>
# [<audit log>] [<blocktime>]
# [<log name>] [<log offset>] [<log size>]
# [<maxrdom>] [<maxrdtran>] [<maxtran>]
# [<maxdatalen>] [<security>]
# [<tuxconfig>] [<tuxoffset>]
#
#
DEFAULT: SECURITY = NONE
c01 GWGRP = bankg1
TYPE = TDOMAIN
DOMAINID = "BA.CENTRAL01"
DMTLOGDEV = "/usr/apps/bank/DMTLOG"
DMTLOGNAME = "DMTLG_C01"
c02 GWGRP = bankg2
TYPE = OSITP
DOMAINID = "BA.CENTRAL01"
DMTLOGDEV = "/usr/apps/bank/DMTLOG"
DMTLOGNAME = "DMTLG_C02"
NWDEVICE = "OSITP"
URCH = "ABCD"
#
*DM_REMOTE_DOMAINS
#<remote domain name> <domain type> <domain id>
#
b01 TYPE = TDOMAIN
DOMAINID = "BA.BANK01"
b02 TYPE = TDOMAIN
DOMAINID = "BA.BANK02"
b03 TYPE = TDOMAIN
DOMAINID = "BA.BANK03"
b04 TYPE = OSITP
DOMAINID = "BA.BANK04"
URCH = "ABCD"
#
*DM_TDOMAIN
#
# <local or remote domainname> <network address> [nwdevice]
#
# Local network addresses
c01 NWADDR = "//newyork.acme.com:65432" NWDEVICE ="/dev/tcp"
c02 NWADDR = "//192.76.7.47:65433" NWDEVICE ="/dev/tcp"
# Remote network addresses: second b01 specifies a mirrored gateway
b01 NWADDR = "//192.11.109.5:1025" NWDEVICE = "/dev/tcp"
b01 NWADDR = "//194.12.110.5:1025" NWDEVICE = "/dev/tcp"
b02 NWADDR = "//dallas.acme.com:65432" NWDEVICE = "/dev/tcp"
b03 NWADDR = "//192.11.109.156:4244" NWDEVICE = "/dev/tcp"
#
*DM_OSITP
#
#<local or remote domain name> <apt> <aeq>
# [<aet>] [<acn>] [<apid>] [<aeid>]
# [<profile>]
#
c02 APT = "BA.CENTRAL01"
AEQ = "TUXEDO.R.4.2.1"
AET = "{1.3.15.0.3},{1}"
ACN = "XATMI"
b04 APT = "BA.BANK04"
AEQ = "TUXEDO.R.4.2.1"
AET = "{1.3.15.0.4},{1}"
ACN = "XATMI"
*DM_LOCAL_SERVICES
#<service_name> [<Local Domain name>] [<access control>] [<exported svcname>]
# [<inbuftype>] [<outbuftype>]
#
open_act ACL = branch
close_act ACL = branch
credit
debit
balance
loan LDOM = c02 ACL = loans
*DM_REMOTE_SERVICES
#<service_name> [<Remote domain name>] [<local domain name>]
# [<remote svcname>] [<routing>] [<conv>]
# [<trantime>] [<inbuftype>] [<outbuftype>]
#
tlr_add LDOM = c01 ROUTING = ACCOUNT
tlr_bal LDOM = c01 ROUTING = ACCOUNT
tlr_add RDOM = b04 LDOM = c02 RNAME ="TPSU002"
tlr_bal RDOM = b04 LDOM = c02 RNAME ="TPSU003"
*DM_ROUTING
# <routing criteria> <field> <typed buffer> <ranges>
#
ACCOUNT FIELD = branchid BUFTYPE ="VIEW:account"
RANGES ="MIN - 1000:b01, 1001-3000:b02, *:b03"
*DM_ACCESS_CONTROL
#<acl name> <Remote domain list>
#
branch ACLIST = b01, b02, b03
loans ACLIST = b04