![]() |
![]() |
![]() |
![]() |
![]() |
注意: 分散型のOracle Tuxedo CORBAアプリケーション用の構成ファイルを作成する方法の詳細は、『CORBAアプリケーションのスケーリング、配布およびチューニング』を参照してください。構成に複数のドメインが含まれており、データ依存型ルーティングを使用する場合は、ルーティング機能をサポートするためのドメイン・ゲートウェイ構成ファイル(DMCONFIG)を変更する必要もあります。RESOURCESセクションでは、アプリケーションの最大サーバー数など、システム全体に関するリソースの制御パラメータを定義します。このセクションのパラメータ設定は、すべて、アプリケーション全体に適用されます。
注意: このトピックの表で説明するパラメータは、分散アプリケーション専用です。どのOracleTuxedoアプリケーションにも適用できる基本的なパラメータの詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のUBBCONFIG(5)に関する項を参照してください。表11-1に、RESOURCESセクションのパラメータを示します。
表11-1 RESOURCESセクションのパラメータ BBLQUERY (オプション) BBLQUERYでは、DBBLがすべてのBBLのステータスをチェックする間隔を、基本のSCANUNITに対する乗数として指定します。DBBLは、すべてのBBLのステータスがBBLQUERYで指定した期間内に報告されるようにします。BBLからの報告がない場合、DBBLはそのBBLにメッセージを送信し、ステータスを照会します。応答がない場合、BBLはパーティション化されます。 BLOCKTIME (オプション) BLOCKTIMEでは、ブロッキング呼出し(たとえば応答の受信)の後でタイムアウトするまでの時間を、基本のSCANUNITに対する乗数として指定します。 DBBLWAIT (オプション) DBBLWAITは、DBBLがすべてのBBLからの応答を待機する期間を、基本のSCANUNITに対する乗数として指定します。この期間を経過すると、タイムアウトします。DBBLは、BBLにリクエストを転送した後、すべてのBBLから肯定応答を受信した後でリクエスタに応答を返します。このパラメータを使用して、動作不能なBBLまたは異常なBBLを検出することもできます。 IPCKEY (必須) IPCKEYは、掲示板の数値キーを指定します。単一プロセッサ環境では、このキーにより掲示板の名前が指定されます。マルチプロセッサ環境では、このキーによりDBBLのメッセージ・キューが指定されます。また、このキーは、既知のアドレスのほか、マルチプロセッサ全体の掲示板などのリソース名の基準としても使用されます。 MASTER (必須) MASTER (string_value1[,string_value2])は、TUXCONFIGのマスター・コピーが置かれているマシンのLMIDを指定します。また、アプリケーションがMPモードで実行されている場合、MASTERはDBBLが実行されるマシンを指定します。string_value2は、プロセスの再配置および起動時に、使用されるLMIDの代替位置を指定します。本来の位置が使用できない場合、DBBLはこの代替位置で起動し、代替のTUXCONFIGファイルが使用されます。 MAXGROUPS (オプション) MAXGROUPSは、掲示板のグループ表に対応した、構成済のサーバー・グループの最大数を指定します。 MAXSERVERS (オプション) MAXSERVERSは、掲示板のサーバー表に対応するサーバーの最大数を指定します。 MAXSERVICES (オプション) MAXSERVICESは、掲示板のサービス表に対応するサービスの最大数を指定します。 SANITYSCAN (オプション) SANITYSCANは、システムの正常性チェックの間隔を、基本のSCANUNITに対する乗数として指定します。 SCANUNIT (オプション) SCANUNITは、Bulletin Board Liaisonが、サービス・リクエスト内でタイムアウトされたトランザクションやブロッキング呼出しをスキャンする間隔(秒単位)を指定します。この値はBBLによるスキャン処理の基本単位として使用されます。この値は、tpbegin(3c)で指定できるトランザクション・タイムアウト値と、BLOCKTIMEパラメータで指定されるブロッキング・タイムアウト値に影響します。SANITYSCAN、BBLQUERY、DBBLWAIT、およびBLOCKTIMEパラメータは、システム内のほかのタイムアウト値を指定するもので、この単位の倍数です。MACHINESセクションでは、構成内のすべての物理マシン(マルチプロセッサ・マシンのすべての処理要素も含む)に論理名を割り当て、各マシンに対してその他のパラメータを個別に定義します。表11-2に、分散アプリケーションに参加する各マシンに対し、マシン名やその他のマシン固有の情報を定義するためのパラメータを示します。
表11-2 MACHINESセクションのパラメータ ENVFILE (オプション) ENVFILEは、マシン上のすべてのクライアントとサーバーの実行環境を定義するファイルを指定します。 MAXACCESSERS (オプション) MAXACCESSERSは、このプロセッサの掲示板に同時にアクセスできるプロセスの最大数を指定します。適切な値を計算する場合、BBLやtmadminなどのシステム管理プロセスをカウントする必要はありませんが、アプリケーションのサーバーとクライアント、およびTMSサーバーはすべてカウントする必要があります。 MAXCONV (オプション) MAXCONVは、特定のマシン上のプロセスで同時に実行できる会話の最大数を指定します。 MAXWSCLIENTS (オプション) MAXWSCLIENTSは、このプロセッサが受け付ける、ワークステーション・クライアント専用のアクセサ・エントリ数を指定します。このパラメータは、Oracle TuxedoシステムのWorkstationコンポーネントが使用される場合にのみ指定されます。このパラメータで指定された数は、MAXACCESSERSで指定したアクセサ・スロットの総数に含まれます。ワークステーション・クライアントからシステムへのアクセスは、Oracle Tuxedoシステムに組み込まれている代理プロセス、つまりワークステーション・ハンドラによって多重化されます。そのため、このパラメータを適切に設定すると、IPCリソースを節約できます。GROUPSセクションでは、アプリケーションに必要なサーバー・グループの数を設定します。サーバー・グループは、すべて同じサイトに設定することも(SHMモード)、分散アプリケーションで複数のサイトに分散することも(MPモード)できます。
• パラメータにより、サーバー・グループが特定のLMIDおよびリソース・マネージャの特定のインスタンスに関連付けられます。
• 表11-3に、GROUPSセクションのパラメータを示します。
表11-3 GROUPSセクションのパラメータ ENVFILEは、グループ内のすべてのサーバーの実行環境を定義するファイルを指定します。 GRPNO (必須) GRPNOは、特定のサーバー・グループに対して番号を関連付けます。この数は、0より大きく30,000より小さい値で、GROUPSセクションのエントリ間で一意である必要があります。 LMID (必須) LMIDは、定義されたサーバー・グループが実行されるマシンを識別します。値の後に、カンマで区切って別のLMIDを指定し、代替マシンを設定することもできます。MIGRATEオプションが指定されている場合は、サーバー・グループをこの代替マシンに移行できます。GROUPSセクションでRESTART=Yが指定されているサーバーは移行できます。SERVICESセクションでは、各サーバー・グループで提供されるサービスを識別する必要があります。SRVGRPパラメータは、1つのサービスを複数のサーバーにリンクするために用意されています。このパラメータは、サービスのインスタンスを示すパラメータを特定のサーバー・グループに関連付けます。表11-4に、分散アプリケーションの定義用のSERVICESセクションのパラメータを示します。
表11-4 SERVICESセクションのパラメータ LOAD (オプション) LOADは、SVCNMによってシステムに与える負荷のサイズを指定します。 PRIO (オプション) PRIOは、SVCNMをキューから取り出すときの優先度を指定します。 ROUTING (オプション) ROUTINGは、データ依存型ルーティングを行うときに、このサービスに使用されるルーティング基準名を指定します。このパラメータを指定しないと、このサービスに対してデータ依存型ルーティングは実行されません。 SRVGRP (オプション) SRVGRPは、SVCNMで指定され、このセクションで設定されたパラメータによって制御されるサービスのホスト・サーバー・グループを指定します。 SVCTIMEOUT (オプション) SVCTIMEOUTは、特定のサービスの処理に与える時間を秒単位で指定します。サービスがタイムアウトになると、サービス・リクエストを処理しているサーバーがSIGKILLシグナルで終了します。アプリケーションにトランザクション処理が含まれる場合は、SERVICESセクションでさらに3つのパラメータ(AUTOTRAN、ROUTINGおよびTRANTIME)を設定することもできます。これらのパラメータについては、「トランザクション対応のATMIアプリケーションの構成」で説明します。次のリストに、SERVICESセクションの例を示します。ROUTINGセクションでは、データ依存型ルーティングの実行時に使用される基準を指定します。サービスが複数のエントリに属しており、それぞれに対して異なるSRVGRPパラメータの値が設定されている場合、各エントリのROUTINGパラメータには同じ値を指定する必要があります。ROUTINGパラメータに同じ値が指定されないと、サービスに対して一貫したルーティングが行われません。サービスがルーティングされるのは、1つのフィールド上でのみです。したがって、そのフィールドのサービスに対する値は、すべてのエントリで同じでなければなりません。構成ファイルにROUTINGセクションを追加し、データ範囲とグループのマッピングを示すことができます。このセクションの情報により、システムは指定されたグループ内のサーバーにリクエストを送ることができます。ROUTINGセクションの各項目には、SERVICESセクションで使用される識別子が含まれています。CRITERION_NAME required_parametersCRITERION_NAMEは、データ依存型ルーティングのSERVICESセクションで指定したルーティング・エントリ名です。CRITERION_NAMEの値は、15文字以内の文字列でなければなりません。表11-5に、ROUTINGセクションのパラメータを示します。
表11-5 ROUTINGセクションのパラメータ ルーティング・フィールドの名前。値は、FMLバッファ、XMLの要素または要素の属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)のいずれかになります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。
• 『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のUBBCONFIG(5)に関する項データ依存型ルーティングを使用するOracle TuxedoアプリケーションのUBBCONFIGサンプル・ファイルからの抜粋を次に示します。GROUPS、SERVICES、ROUTINGの3つのセクションを示しています。ドメイン・ゲートウェイ構成に関するすべての情報は、バイナリ形式のBDMCONFIGファイルに格納されています。このファイルは、まずDMCONFIGというテキスト形式の構成ファイルを作成し、次にバイナリ形式のBDMCONFIGにコンパイルして作成します。コンパイル済のBDMCONFIGファイルは、実行中のシステムでdmadmin(1)コマンドを使用して更新できます。Oracle Tuxedoのマニュアルでは、これらの構成ファイルをDMCONFIGおよびBDMCONFIGと呼んでいますが、任意の名前を付けることもできます。Domains機能を追加する各Oracle Tuxedoアプリケーションには、BDMCONFIGファイルを1つ作成する必要があります。BDMCONFIGファイルへのアクセスは、Domains管理サーバーであるDMADM(5)から行います。ゲートウェイ・グループが起動されると、ゲートウェイ管理サーバーであるGWADM(5)は、そのグループに必要な構成のコピーをDMADMサーバーにリクエストします。また、GWADMサーバーとDMADMサーバーは、構成における実行時の変更が、対応するドメイン・ゲートウェイ・グループに反映されるようにします。
注意: DM_ROUTINGセクションでは、型付きバッファであるFML、XML、VIEW、X_C_TYPE、およびX_COMMONを使用したサービス・リクエストのデータ依存型ルーティングに関する情報を提供します。DM_ROUTINGセクション内にある各行の形式は次のとおりです。CRITERION_NAME required_parameters次の表に、DM_ROUTINGセクションのパラメータを示します。
FIELD (オプション) ルーティング・フィールドの名前を指定します。値は、FMLバッファ、XMLの要素または要素の属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)のいずれかになります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。 RANGES (オプション) ルーティング・フィールドの範囲と関連付けられたリモート・ドメイン名(RACCESSPOINT)を指定します。RANGESには、二重引用符で囲まれた文字列を指定します。文字列は、範囲/RACCESSPOINTのペアをカンマで区切って順番に並べます。関連するFIELDのデータ型の最小値を示すには、MINを使用します。文字列とcarrayの最小値にはnull文字列を指定します。文字フィールドの最小値には、0を指定します。数値の場合、これはフィールドに格納できる最小値です。関連するFIELDのデータ型の最大値を示すには、MAXを使用します。文字列とcarrayの最大値には、8進数値の255文字の無限文字列を指定します。文字フィールドの最大値には、単一の8進数値の255文字を指定します。数値の場合は、数値としてフィールドに格納できる最大値です。したがって、MIN - -5は-5以下のすべての数を表し、6 - MAXは6以上のすべての数を表します。範囲内のメタ文字"*" (ワイルドカード)は、すでにエントリに指定した他の範囲ではカバーされていないすべての値を示します。各エントリでは1つのワイルドカードによる範囲指定だけが可能です。*は最後に指定します。続けて範囲を指定すると無視されます。 BUFTYPE (オプション) BUFTYPEは、このルーティング・エントリを適用できるデータ・バッファのタイプとサブタイプのリストを示します。有効なタイプは、FML、VIEW、X_C_TYPE、およびX_COMMONです。FMLではサブタイプは指定されません。それ以外のタイプにはサブタイプが必要です。ただし*は使用できません。タイプとサブタイプのペアのうち、重複するものは同じルーティング基準名として指定できません。タイプとサブタイプのペアが一意の場合、複数のルーティング・エントリは同じ基準名を持つことができます。単一のルーティング・エントリに複数のバッファ・タイプが指定される場合、各バッファ・タイプに対するルーティング・フィールドのデータ型は同じである必要があります。フィールド値が設定されていないか(FMLバッファの場合)、または特定の範囲と一致しておらず、ワイルドカードの範囲が指定されていない場合、リモート・サービスの実行をリクエストしたアプリケーション・プロセスに対してエラーが返されます。ルーティング・フィールドの値には、FMLまたはVIEWでサポートされているデータ型を使用できます。数値の範囲または文字列の範囲も使用できます。文字列、CARRAY、および文字フィールド型の文字列の範囲値には、以下の規則が適用されます。
• 浮動小数点数は、Cコンパイラまたはatof()で受け付けられる形式で指定します。つまり、正符号または負符号、数字の文字列(必要に応じて小数点を追加)、eまたはE (オプション)、符号またはスペース(オプション)、整数という形式で指定します。
• フィールド値が範囲と一致するときに、関連するRACCESSPOINT値には、リクエストがルーティングされるリモート・ドメインを指定します。RACCESSPOINT値に*を指定すると、ゲートウェイ・グループが認識する任意のリモート・ドメインにリクエストが送られることを示します。範囲/RACCESSPOINTのペアでは、範囲(range)とRACCESSPOINTはコロン(:)で区切られます。リスト11-1に、Central Bankから見たOracle Tuxedoシステムのドメイン・ゲートウェイ構成ファイルを示します。DM_TDOMAINセクションは、b01をミラーリングしたゲートウェイを示しています。リスト11-1 5サイト用のドメイン構成ファイル# TUXEDO DOMAIN CONFIGURATION FILE FOR THE CENTRAL BANK
#
#
*DM_LOCAL
# local_domain_name Gateway_Group_name domain_type domain_ID log_device
# [audit log] [blocktime]
# [log name] [log offset] [log size]
# [maxaccesspoint] [maxraptran] [maxtran]
# [maxdatalen] [security]
# [tuxconfig] [tuxoffset]
#
#
DEFAULT: SECURITY = NONE
c01 GWGRP = bankg1
TYPE = TDOMAIN
ACCESSPOINTID = "BA.CENTRAL01"
DMTLOGDEV = "/usr/apps/bank/DMTLOG"
DMTLOGNAME = "DMTLG_C01"
c02 GWGRP = bankg2
TYPE = OSITP
ACCESSPOINTID = "BA.CENTRAL01"
DMTLOGDEV = "/usr/apps/bank/DMTLOG"
DMTLOGNAME = "DMTLG_C02"
NWDEVICE = "OSITP"
URCH = "ABCD"
#
*DM_REMOTE
#remote_domain_name domain_type domain_ID
#
b01 TYPE = TDOMAIN
ACCESSPOINTID = "BA.BANK01"
b02 TYPE = TDOMAIN
ACCESSPOINTID = "BA.BANK02"
b03 TYPE = TDOMAIN
ACCESSPOINTID = "BA.BANK03"
b04 TYPE = OSITP
ACCESSPOINTID = "BA.BANK04"
URCH = "ABCD"
#
*DM_TDOMAIN
#
# local_or_remote_domain_name 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_EXPORT
#service_name [Local_Domain_name] [access_control] [exported_svcname]
# [inbuftype] [outbuftype]
#
open_act ACL = branch
close_act ACL = branch
credit
debit
balance
loan LACCESSPOINT = c02 ACL = loans
*DM_IMPORT
#service_name [Remote_domain_name] [local_domain_name]
# [remote_svcname] [routing] [conv]
# [trantime] [inbuftype] [outbuftype]
#
tlr_add LACCESSPOINT = c01 ROUTING = ACCOUNT
tlr_bal LACCESSPOINT = c01 ROUTING = ACCOUNT
tlr_add RACCESSPOINT = b04 LACCESSPOINT = c02 RNAME ="TPSU002"
tlr_bal RACCESSPOINT = b04 LACCESSPOINT = 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
• 『Oracle Tuxedo Domainsコンポーネントの使用』のDomains構成ファイルの理解に関する項
• 『Oracle Tuxedo Domainsコンポーネントの使用』のDomains構成の設定に関する項