目次 前 次 PDF


CORBAアプリケーションの分散

CORBAアプリケーションの分散
このトピックには次の項が含まれます:
このトピックでは、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ページの「ファクトリ・ベース・ルーティングによるスケーリング」を参照してください。
Oracle Tuxedo CORBAのスケーラビリティの特長の詳細は、第1章「Oracle Tuxedo CORBAアプリケーションのスケーリング」を参照してください。
開発と保守の容易性 - ビジネス・アプリケーション・ロジックを適切に定義されたメッセージまたはインタフェースを介して通信するサービスまたはコンポーネントに分割することにより、開発と保守の双方を、同様に分割して、簡略化できます。
信頼性 - 複数のマシンを使用中にそのうちの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つのグループ(BANKB1BANKB2、およびBANKB3)と、2つのルーティング基準(Account_IDおよびBranch_ID)があります。サービスWITHDRAWDEPOSIT、およびINQUIRYは、Account_IDフィールドを使用してルーティングされます。サービスOPENおよびCLOSEは、Branch_IDフィールドを使用してルーティングされます。
 
表3-1 サンプル分散アプリケーションのデータ依存型ルーティング基準
サーバー・グループ
ルーティング基準
サービス
BANKB1
Account_ID: 10000 - 49999
WITHDRAWDEPOSITおよびINQUIRY
Branch_ID: 1 - 4
OPENおよびCLOSE
BANKB2
Account_ID: 50000 - 79999
WITHDRAWDEPOSITおよびINQUIRY
Branch_ID: 5 - 7
OPENおよびCLOSE
BANKB3
Account_ID: 80000 - 109999
WITHDRAWDEPOSITおよびINQUIRY
Branch_ID: 8 - 10
OPENおよびCLOSE
分散アプリケーションにおけるUBBCONFIGセクションの例
リスト3-1は、Oracle Tuxedoシステムでデータ依存型ルーティングを実現するための構成ファイルにおける、GROUPSSERVICES、およびROUTINGの各セクションを含むUBBCONFIGファイルの例を示します。
リスト3-1 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ファイルの設定
このトピックには次の項が含まれます:
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セクションの変更
GROUPSセクションのパラメータは、分散トランザクション処理に関する次の2つの重要な側面を実装します。
パラメータにより、サーバー・グループが特定のLMIDおよびリソース・マネージャの特定のインスタンスに関連付けられます。
サーバー・グループに対して、代替マシンを示す別のLMIDを関連付けることにより、サーバー・グループを代替マシンに移行できます(ただし、MIGRATEオプションが指定されている場合)。
表3-2に、GROUPSセクションのパラメータを示します。
 
表3-2 GROUPSセクションで指定されるパラメータ
パラメータ
意味
LMID
このサーバー・グループがこの特定のマシン上で実行されることを示すには、LMIDMACHINESセクションに割り当てる必要があります。値の後に、カンマで区切って別のLMIDを指定し、代替マシンを設定することもできます。MIGRATEオプションが指定されている場合は、サーバー・グループをこの代替マシンに移行できます。グループ内のサーバーを移行するには、RESTART=Yを指定する必要があります。
GRPNO
このサーバー・グループにグループ番号を示す数値を関連付けます。0より大きく、30000未満の番号を指定する必要があります。番号は、この構成ファイルのGROUPSセクションのエントリの中でユニークでなければなりません(必須)
TMSNAME
このサーバー・グループに関連付けるトランザクション管理サーバー(TMS)を指定します。
TMSCOUNT
このサーバー・グループ用に起動するTMSNAMEのコピー数を指定します。最小値は2です。値を指定しない場合は、デフォルトの3が指定されます。サーバー・グループ用に起動されたTMSNAMEサーバーはすべて、MSSQセットで自動的に設定されます(オプション)
OPENINFO
特定のリソース・マネージャの特定のインスタンスを開くために必要な情報を指定するか、またはそのような情報がこのサーバー・グループには不要であることを示します。リソース・マネージャをOPENINFOパラメータで指定した場合、データベース名やアクセス・モードなどの情報が含まれます。値の文字列全体を256文字以下とし、二重引用符で囲む必要があります。OPENINFO文字列の形式は、基底のリソース・マネージャのベンダーごとに異なります。ベンダー固有の文字列の先頭は、rm_name:となります。これはベンダーのトランザクション・インタフェース(XAインタフェース)の公開名の直後にコロン(:)を付けたものです。
TMSNAMEが設定されていないか、TMSに設定されている場合、OPENINFOパラメータは無視されます。TMSNAMEが設定されているが、OPENINFO文字列の設定がnull文字列("")になっている場合、またはこのパラメータがエントリ内に登場しない場合は、グループのリソース・マネージャが存在しているが、openオペレーションを実行するための情報を必要としていないことを意味します。
CLOSEINFO
データベースを閉じるときにリソース・マネージャが必要とする情報を指定します。このパラメータは省略することも、null文字列を指定することもできます。デフォルトはnull文字列です。
SERVICESセクションの変更
SERVICESセクションのパラメータは、アプリケーション・サービスの処理方法を制御します。このセクションのエントリの行は、識別子名によってサービスと関連付けられます。SRVGRPパラメータは、1つのサービスを複数のサーバーにリンクするために用意されています。このパラメータは、サービスのインスタンスを示すパラメータを特定のサーバー・グループに関連付けます。
変更するパラメータ
SERVICESセクションには、特にOracle Tuxedo ATMIサービスを使用するOracle Tuxedo CORBAアプリケーションの分散トランザクション処理(DTP)に関連付けられるパラメータが2つ(AUTOTRANTRANTIME)あります。
表3-3は、SERVICESセクションのパラメータの説明です。
 
表3-3 SERVICESセクションで指定されるパラメータ
パラメータ
意味
AUTOTRAN
このサービスで受信されたメッセージがすでにトランザクション・モードではない場合に、自動的にトランザクションを開始するかどうかを判断します。デフォルト値は、Nです。このパラメータの使用については、アプリケーションのサービスをコーディングするプログラマとの間で調整を行ってください。
TRANTIME
このサービスで自動的に開始されたトランザクションの、タイムアウト値を秒単位で指定します。デフォルトは30秒です。これを指定するのは、AUTOTRAN=Yや、ほかのタイムアウト値が必要な場合のみです。
SERVICESセクションの例
リスト3-2に、SERVICESセクションの例を示します。
リスト3-2 ProductionサンプルのSERVICESセクション
*SERVICES
# Publish Tuxedo Teller application services
#
DEBIT
AUTOTRAN=Y
CREDIT
AUTOTRAN=Y
CURRBALANCE
AUTOTRAN=Y
 
INTERFACESセクションの変更
INTERFACESセクションのパラメータは、アプリケーション・インタフェースの処理方法を制御します。このセクションのエントリの行は、識別子名によってインタフェースと関連付けられます。SRVGRPパラメータは、1つのインタフェースを複数のサーバーにリンクするために用意されています。このパラメータは、インタフェースのインスタンスを示すパラメータを特定のサーバー・グループに関連付けます。
変更するパラメータ
INTERFACESセクションには、特に分散トランザクション処理(DTP)に関連付けられるパラメータが3つ(FACTORYROUTINGAUTOTRAN、およびTRANTIME)あります。
表3-4は、INTERFACESセクションのパラメータの説明です。
 
表3-4 INTERFACESセクションで指定されるパラメータ
パラメータ
意味
FACTORYROUTING = criterion-name
このOracle Tuxedo CORBAインタフェースのファクトリ・ベース・ルーティングに使用されるルーティング基準名を指定します。ファクトリ・ベース・ルーティングをリクエストしているインタフェースに対してFACTORYROUTINGパラメータを指定する必要があります。
AUTOTRAN
このインタフェースで受信されたメッセージがすでにトランザクション・モードではない場合に、自動的にトランザクションを開始するかどうかを判断します。デフォルト値は、Nです。このパラメータの使用については、アプリケーションのICFファイルのtransaction policyオプションの設定とパラメータが一致するように、アプリケーションのインタフェースをコーディングするプログラマとの間で調整を行ってください。
TRANTIME
このインタフェースで自動的に開始されたトランザクションの、タイムアウト値を秒単位で指定します。デフォルトは30秒です。これを指定するのは、AUTOTRAN=Yおよびデフォルト以外のタイムアウト値が必要な場合のみです。
LOAD = number
CORBAインタフェースがシステムに与えると予想される相対的な負荷を表す、1から100の間の任意の数値を指定します。数の設定スキームは、このアプリケーションで使用されるほかのCORBAインタフェースに割り当てられたLOAD数値を基準としています。デフォルトは50です。この値は、Oracle Tuxedoシステムがリクエストのルーティング先サーバーを選択する際に使用されます。
INTERFACESセクションの例
リスト3-3に、INTERFACESセクションの例を示します。
リスト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
 
ROUTINGセクションの作成
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セクションでは、型付きバッファであるFMLVIEWX_C_TYPEおよびX_COMMONを使用したサービス・リクエストのデータ依存型ルーティングに関する情報を提供します。DM_ROUTINGセクション内の行にはフォームCRITERION_NAMEがあり、CRITERION_NAMESERVICESセクションに指定されたルーティング・エントリの(識別子の)名前です。CRITERION_NAMEエントリに使用できるのは15文字までです。
指定するパラメータ
表3-5は、DM_ROUTINGセクションのパラメータの説明です。
 
表3-5 DM_ROUTINGセクションで指定されるパラメータ
パラメータ
説明
FIELD = identifier
ルーティング・フィールドの名前を指定します。長さは30文字以下です。このフィールドは、FMLフィールド表で識別されたフィールド名(FMLバッファの場合)、またはFML VIEW表で識別されたフィールド名(VIEWX_C_TYPE、またはX_COMMONバッファの場合)とみなされます。FLDTBLDIR環境変数およびFIELDTBLS環境変数はFMLフィールド表を見つけるために使用され、VIEWDIR環境変数およびVIEWFILES環境変数は、FML VIEW表を見つけるために使用されます。FML32バッファ内のフィールドがルーティングに使用される場合は、8191以下の数値をフィールド番号として指定します。
BUFTYPE = "type1[:subtype1[,subtype2 . . . ]][;type2[:subtype3[, . . . ]]] . . ."
このルーティング・エントリで有効なデータ・バッファのタイプとサブタイプのリストを指定します。有効なタイプは、FMLVIEWX_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 - MAX6以上のすべての数を表します。
範囲(range)内のメタキャラクタ* (ワイルドカード)は、すでにエントリとして指定した範囲では使用されなかった任意の値を示します。各エントリでは1つのワイルドカードによる範囲指定だけが可能です。*は最後に指定します。続けて範囲を指定すると無視されます。
ルーティング・フィールドの説明
ルーティング・フィールドには、FMLまたはVIEWでサポートされている任意のデータ型を指定できます。数値のルーティング・フィールドには、数値による範囲値、文字列のルーティング・フィールドには文字列による範囲値を指定します。
string、carrayおよびcharacterフィールド・タイプの文字列の範囲値は、一重引用符のペアの中に配置する必要があり、前に記号を付けることはできません。shortおよびlong整数値は数値の文字列であり、オプションで前にプラス(+)またはマイナス(-)記号を付けることができます。浮動小数点は、Cコンパイラまたはatof()で使用可能なフォーム(オプションで小数点を含む数値の文字列が続くオプションの記号、およびオプションで記号や空白、整数が続くオプションのeまたはE)です。
フィールド値が範囲と一致するときに、関連するRDOM値には、リクエストがルーティングされるリモート・ドメインを指定します。RDOM値に*を指定すると、ゲートウェイ・グループが認識する任意のリモート・ドメインにリクエストが送信されることを示します。range/RDOMの組合せでは、範囲とRDOMはコロン(:)で区切られます。
ルーティングを使用した5サイトのドメイン構成の例
リスト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
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved