Oracle Tuxedoアプリケーションの設定

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

分散型のATMIアプリケーション用の構成ファイルの作成

ここでは、以下の内容について説明します。

注意: 分散型のOracle Tuxedo CORBAアプリケーション用の構成ファイルを作成する方法については、『CORBAアプリケーションのスケーリング、分散およびチューニング』を参照してください。

 


分散型のOracle Tuxedo ATMIアプリケーション用の構成ファイルの要件

分散型のOracle Tuxedo ATMIアプリケーションは、1つ以上のローカル・クライアントまたはリモート・クライアントで構成され、ネットワーク接続された複数のマシン上にある1つ以上のサーバーと通信します。すべての構成要素は、Oracle Tuxedo構成ファイルで1つのエンティティとして管理されます。分散型の構成を設定するには、構成ファイルを作成し、次のセクションを設定する必要があります。

構成に複数のドメインが含まれており、データ依存型ルーティングを使用する場合は、ルーティング機能をサポートするためのドメイン・ゲートウェイ構成ファイル(DMCONFIG)を変更する必要もあります。

 


RESOURCESセクションの作成

RESOURCESセクションでは、アプリケーションの最大サーバー数など、システム全体に関するリソースの制御パラメータを定義します。このセクションのパラメータ設定は、すべて、アプリケーション全体に適用されます。

注意: このトピックの表で説明するパラメータは、分散アプリケーション用です。どのOracleTuxedoアプリケーションにも適用できる基本的なパラメータの説明については、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』「UBBCONFIG(5)」を参照してください。

表11-1に、リソース・セクションのパラメータを示します。

表11-1 RESOURCESセクションのパラメータ
パラメータ
説明
BBLQUERY (オプション)
BBLQUERYは、DBBLがすべてのBBLのステータスをチェックする間隔をSCANUNITの乗数で指定します。DBBLは、すべてのBBLのステータスがBBLQUERYで指定した期間内に報告されるようにします。BBLからの報告がない場合、DBBLはそのBBLにメッセージを送信し、ステータスを照会します。応答がない場合、BBLはパーティション化されます。
BBLQUERYには、0より大きい値を指定する必要があります。このパラメータを指定しない場合、デフォルト値が設定され、SCANUNIT × BBLQUERYが、約300秒になります。
BLOCKTIME (オプション)
BLOCKTIMEは、ブロッキング呼出し(たとえば応答の受信)の後でタイムアウトが発生するまでの時間をSCANUNITの乗数で指定します。
BLOCKTIMEには、0より大きい値を指定する必要があります。このパラメータを指定しない場合、デフォルト値が設定され、SCANUNIT × BLOCKTIMEが、約60秒になります。
DBBLWAIT (オプション)
DBBLWAIT は、DBBLが、すべてのBBLからの応答を待機する期間をSCANUNITの倍数で指定します。この期間を経過すると、タイムアウトが発生します。DBBLは、BBLにリクエストを転送した後、すべてのBBLから肯定応答を受信した後でリクエスタに応答を返します。このパラメータを使用して、動作不能なBBLまたは異常なBBLを検出することもできます。
DBBLWAITには、0より大きい値を指定する必要があります。このパラメータを指定しない場合、デフォルト値が設定され、SCANUNIT × DBBLWAITSCANUNITより大きい値か、または20秒になります。
IPCKEY (必須)
IPCKEYは、掲示板の数値キーを指定します。単一プロセッサ環境では、このキーにより掲示板の名前が指定されます。マルチプロセッサ環境では、このキーによりDBBLのメッセージ・キューが指定されます。また、このキーは、既知のアドレスのほか、マルチプロセッサ全体の掲示板などのリソース名の基準としても使用されます。
IPCKEYは、32,768より大きく262,143より小さい値にする必要があります。
MASTER (必須)
MASTER (string_value1[,string_value2])は、TUXCONFIGのマスター・コピーが置かれているマシンのLMIDを指定します。また、アプリケーションがMPモードで実行されている場合、MASTERはDBBLが実行されるマシンを指定します。string_value2は、プロセスの再配置および起動時に、使用されるLMIDの代替位置を指定します。本来の位置が使用できない場合、DBBLはこの代替位置で起動し、代替のTUXCONFIGファイルが使用されます。
string_value1およびstring_value2の値は、どちらもMACHINESセクションで定義されたマシンのLMIDでなければなりません。各文字列には、最大30文字まで指定できます。
MAXGROUPS (オプション)
MAXGROUPSは、掲示板のグループ表に対応した、構成済のサーバー・グループの最大数を指定します。
MAXGROUPSには、100以上32,768未満の値を指定する必要があります。デフォルトは100です。
MAXSERVERS (オプション)
MAXSERVERSは、掲示板のサーバー表に対応するサーバーの最大数を指定します。
MAXSERVERSには、0より大きく8192より小さい値を指定する必要があります。デフォルトは50です。
MAXSERVICES (オプション)
MAXSERVICESは、掲示板のサービス表に対応するサービスの最大数を指定します。
MAXSERVICESには、0より大きく1,048,575より小さい値を指定する必要があります。デフォルトは100です。
SANITYSCAN (オプション)
SANITYSCANは、システムの正常性チェックを行う間隔を、SCANUNITの乗数で指定します。
SCANUNITには、0より大きい値を指定する必要があります。デフォルト値が設定されると、SCANUNIT × SANITYSCANが約120秒になります。
正常性チェックは、掲示板のデータ構造体のほか、サーバーに対しても実行されます。
SCANUNIT (オプション)
SCANUNITは、Bulletin Board Liaisonが、サービス・リクエスト内でタイムアウトされたトランザクションやブロッキング呼出しをスキャンする間隔(秒単位)を指定します。この値はBBLによるスキャン処理の基本単位として使用されます。この値は、tpbegin(3c)で指定できるトランザクション・タイムアウト値と、BLOCKTIMEパラメータで指定されるブロッキング・タイムアウト値に影響します。SANITYSCANBBLQUERYDBBLWAIT、およびBLOCKTIMEパラメータは、システム内のほかのタイムアウト値を指定するもので、この単位の倍数です。
SCANUNITには、0より大きく60以下で、2または5の倍数の秒数を指定する必要があります。デフォルトは10秒です。

 


MACHINESセクションの作成

MACHINESセクションでは、構成内のすべての物理マシン(マルチプロセッサ・マシンのすべての処理要素も含む)に論理名を割り当て、各マシンに対してその他のパラメータを個別に定義します。表11-2では、分散アプリケーションに参加する各マシンに対し、マシン名やその他のマシン固有の情報を定義するためのパラメータを説明します。

表11-2 MACHINESセクションのパラメータ
パラメータ
説明
ENVFILE (オプション)
ENVFILEは、マシン上のすべてのクライアントとサーバーの実行環境を定義するファイルを指定します。
各行は、ident=valueの形式で指定します。identにはアンダースコアか英数字、またはその両方を指定し、先頭にはアンダースコアまたは英文字を指定します。
ENVFILEに無効なファイル名が指定されると、環境に値は追加されません。
MAXACCESSERS (オプション)
MAXACCESSERSは、このプロセッサの掲示板に同時にアクセスできるプロセスの最大数を指定します。適切な値を計算する場合、BBLやtmadminなどのシステム管理プロセスをカウントする必要はありませんが、アプリケーションのサーバーとクライアント、およびTMSサーバーはすべてカウントする必要があります。
MAXACCESSERSは、0より大きく32,768より小さい値にする必要があります。デフォルトは、RESOURCESセクションで指定した値です。
MAXCONV (オプション)
MAXCONVは、特定のマシン上のプロセスで同時に実行できる会話の最大数を指定します。
MAXCONVには、0より大きく32,768より小さい値を指定する必要があります。サーバーごとの同時会話数の最大値は64です。デフォルトは、RESOURCESセクションで指定した値です。
MAXWSCLIENTS (オプション)
MAXWSCLIENTSは、このプロセッサが受け付ける、ワークステーション・クライアント専用のアクセサ・エントリ数を指定します。このパラメータは、Oracle TuxedoシステムのWorkstationコンポーネントが使用される場合にのみ指定されます。このパラメータで指定された数は、MAXACCESSERSで指定したアクセサ・スロットの総数に含まれます。ワークステーション・クライアントからシステムへのアクセスは、Oracle Tuxedoシステムに組み込まれている代理プロセス、つまりワークステーション・ハンドラによって多重化されます。そのため、このパラメータを適切に設定すると、IPCリソースを節約できます。
MAXWSCLIENTSには、0以上32,768未満の値を指定する必要があります。MAXACCESSERSより大きい値を指定することはできません。MAXACCESSERSより大きい値をMAXWSCLIENTSに割り当てると、エラーが発生します。デフォルトは0です。

 


GROUPSセクションの作成

GROUPSセクションでは、アプリケーション内の各サーバー・グループを識別し、特定のサーバー・グループ内のサーバーにリクエストがルーティングされるようにします。

GROUPSセクションでは、アプリケーションに必要なサーバー・グループの数を設定します。サーバー・グループは、すべて同じサイトに設定することも(SHMモード)、分散アプリケーションで複数のサイトに分散することも(MPモード)できます。

GROUPSセクションのパラメータは、分散トランザクション処理に関する次の2つの側面を実現します。

表11-3は、GROUPSセクションのパラメータの説明です。

表11-3 GROUPSセクションのパラメータ
パラメータ
説明 
ENVFILE
ENVFILEは、グループ内のすべてのサーバーの実行環境を定義するファイルを指定します。
各行は、ident=valueの形式で指定します。identにはアンダースコアか英数字、またはその両方を指定します。
ENVFILEに無効なファイル名が指定されると、環境に値は追加されません。
GRPNO (必須)
GRPNOは、特定のサーバー・グループに対して番号を関連付けます。
この数には、0より大きく30,000より小さい値を指定する必要があります。GROUPSセクションのエントリの中で一意でなければなりません。
LMID (必須)
LMIDは、定義されたサーバー・グループが実行されるマシンを識別します。値の後に、カンマで区切って別のLMIDを指定し、代替マシンを設定することもできます。MIGRATEオプションが指定されている場合は、サーバー・グループをこの代替マシンに移行できます。GROUPSセクションでRESTART=Yが指定されているサーバーは移行できます。
LMIDの値は、MACHINESセクションのLMIDパラメータに割り当てられている値と同じでなければなりません。

 


SERVICESセクションの作成

SERVICESセクションのパラメータは、アプリケーション・サービスの処理方法を決定します。このセクションのエントリの各行は、識別子名によってサービスと関連付けられます。

SERVICESセクションでは、各サーバー・グループで提供されるサービスを識別する必要があります。SRVGRPパラメータは、1つのサービスを複数のサーバーにリンクするために用意されています。このパラメータは、サービスのインスタンスを示すパラメータを特定のサーバー・グループに関連付けます。

表11-4では、分散アプリケーションの定義用のSERVICESセクションのパラメータを説明します。

アプリケーションにトランザクション処理が含まれる場合は、SERVICESセクションでさらに3つのパラメータ(AUTOTRANROUTINGおよびTRANTIME)を設定します。これらのパラメータについては、「トランザクション対応のATMIアプリケーションの構成」で説明します。

以下は、SERVICESセクションのサンプルです。

*SERVICES

WITHDRAW ROUTING=ACCOUNT_ID
DEPOSIT ROUTING=ACCOUNT_ID
OPEN_ACCT ROUTING=BRANCH_ID

 


ROUTINGセクションの作成

ROUTINGセクションでは、データ依存型ルーティングの実行時に使用される基準を指定します。サービスが複数のエントリに属しており、それぞれに対して異なるSRVGRPパラメータの値が設定されている場合、各エントリのROUTINGパラメータには同じ値を指定する必要があります。ROUTINGパラメータに同じ値が指定されないと、サービスに対して一貫したルーティングが行われません。サービスがルーティングされるのは、1つのフィールド上でのみです。したがって、そのフィールドのサービスに対する値は、すべてのエントリで同じでなければなりません。

構成ファイルにROUTINGセクションを追加し、データ範囲とグループのマッピングを示すことができます。このセクションの情報により、システムは指定されたグループ内のサーバーにリクエストを送ることができます。ROUTINGセクションの各項目には、SERVICESセクションで使用される識別子が含まれています。

ROUTINGセクションの行の形式は次のとおりです。

CRITERION_NAME required_parameters

CRITERION_NAMEは、データ依存型ルーティングのSERVICESセクションで指定したルーティング・エントリ名です。CRITERION_NAMEの値は、15文字以内の文字列でなければなりません。

表11-5は、ROUTINGセクションのパラメータの説明です。

表11-5 ROUTINGセクションのパラメータ
パラメータ
説明
RANGES
ルーティング・フィールドの範囲および関連するサーバー・グループを指定します。
FIELD
ルーティング・フィールドの名前を指定します。値は、FMLバッファ、XMLの要素または要素の属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)のいずれかになります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。
BUFTYPE
このルーティング・エントリで有効なデータ・バッファのタイプとサブタイプのリスト。
このパラメータには、最大256文字を指定できます。タイプとサブタイプの組合せは最大32あります。

関連項目

 


分散アプリケーション用の構成ファイルの例

以下は、データ依存型ルーティングを使用するOracle TuxedoアプリケーションのUBBCONFIGサンプル・ファイルからの抜粋です。GROUPSSERVICESROUTINGの3つのセクションを示しています。

*GROUPS
BANKB1 GRPNO=1
BANKB2 GRPNO=2
BANKB3 GRPNO=3
#
*SERVICES
WITHDRAW ROUTING=BY_ACCOUNT_ID
DEPOSIT ROUTING=BY_ACCOUNT_ID
INQUIRY ROUTING=BY_ACCOUNT_ID
OPEN_ACCT ROUTING=BY_BRANCH_ID
CLOSE_ACCT ROUTING=BY_BRANCH_ID
#
*ROUTING
BY_ACCOUNT_ID FIELD=ACCOUNT_ID BUFTYPE=”FML”
RANGES=”MIN - 9999:*,
10000-49999:BANKB1,
50000-79999:BANKB2,
80000-109999:BANKB3,
*:*”
BY_BRANCH_ID FIELD=BRANCH_ID BUFTYPE=”FML”
RANGES=”MIN - 0:*,
1-4:BANKB1,
5-7:BANKB2,
8-10:BANKB3,
*:*”

 


ルーティングをサポートするためのドメイン・ゲートウェイ構成ファイルの変更

ドメイン・ゲートウェイ構成に関するすべての情報は、バイナリ形式のBDMCONFIGファイルに格納されています。このファイルは、まずDMCONFIGというテキスト形式の構成ファイルを作成し、次にバイナリ形式のBDMCONFIGにコンパイルして作成します。コンパイル済のBDMCONFIGファイルは、実行中のシステムでdmadmin(1)コマンドを使用して更新できます。Oracle Tuxedoのマニュアルでは、これらの構成ファイルをDMCONFIGおよびBDMCONFIGと呼んでいますが、任意の名前を付けることもできます。

Domains機能を追加する各Oracle Tuxedoアプリケーションには、BDMCONFIGファイルを1つ作成する必要があります。BDMCONFIGファイルへのアクセスは、Domains管理サーバーであるDMADM(5)から行います。ゲートウェイ・グループが起動されると、ゲートウェイ管理サーバーであるGWADM(5)は、そのグループに必要な構成のコピーをDMADMサーバーにリクエストします。また、GWADMサーバーとDMADMサーバーは、構成における実行時の変更が、対応するドメイン・ゲートウェイ・グループに反映されるようにします。

注意: DMCONFIGファイルの詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』「DMCONFIG(5)」を参照してください。

DMCONFIGのROUTINGセクションのパラメータ

DM_ROUTINGセクションでは、型付きバッファであるFMLXMLVIEWX_C_TYPE、およびX_COMMONを使用したサービス・リクエストのデータ依存型ルーティングに関する情報を提供します。DM_ROUTINGセクション内にある各行の形式は次のとおりです。

CRITERION_NAME required_parameters

CRITERION_NAMEは、SERVICESセクションで指定されたルーティング・エントリの名前です。CRITERION_NAMEの値は、15文字以内の文字列でなければなりません。

次の表は、DM_ROUTINGセクションのパラメータの説明です。

パラメータ
説明
FIELD (オプション)
ルーティング・フィールドの名前を指定します。値は、FMLバッファ、XMLの要素または要素の属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)のいずれかになります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。
FML32バッファ内のフィールドがルーティングに使用される場合は、8191以下の数値をフィールド番号として指定します。
RANGES (オプション)
ルーティング・フィールドの範囲と関連付けられたリモート・ドメイン名(RACCESSPOINT)を指定します。RANGESには、二重引用符で囲まれた文字列を指定します。文字列は、範囲/RACCESSPOINTのペアをカンマで区切って順番に並べます。
範囲(range)は、単一の値(符号付き数値または一重引用符で囲んだ文字列)、またはlower - upper (lowerupperは共に符号付き数値または一重引用符で囲んだ文字列)の形式で表します。
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つのワイルドカードによる範囲指定だけが可能です。*は最後に指定します。続けて範囲を指定すると無視されます。
BUFTYPE (オプション)
BUFTYPEは、このルーティング・エントリを適用できるデータ・バッファのタイプとサブタイプのリストを示します。有効なタイプは、FMLVIEWX_C_TYPE、およびX_COMMONです。FMLではサブタイプは指定されません。それ以外のタイプにはサブタイプが必要です。ただし*は使用できません。タイプとサブタイプのペアのうち、重複するものは同じルーティング基準名として指定できません。タイプとサブタイプのペアが一意の場合、複数のルーティング・エントリは同じ基準名を持つことができます。
単一のルーティング・エントリに複数のバッファ・タイプが指定される場合、各バッファ・タイプに対するルーティング・フィールドのデータ型は同じでなければなりません。フィールド値が設定されていないか(FMLバッファの場合)、または特定の範囲と一致しておらず、ワイルドカードの範囲が指定されていない場合、リモート・サービスの実行をリクエストしたアプリケーション・プロセスに対してエラーが返されます。

ルーティング・フィールドの説明

ルーティング・フィールドの値には、FMLまたはVIEWでサポートされているデータ型を使用できます。数値の範囲または文字列の範囲も使用できます。文字列、CARRAY、および文字フィールド型の文字列の範囲値には、以下の規則が適用されます。

ルーティングを使用した5サイトのドメイン構成の例

以下は、2つのドメインが5サイトに分散されているアプリケーションの構成ファイルの例です。5つのサイトは、Central Bank Officeと4つの支店を示します。4つの支店のうち、3つはOracle Tuxedoドメインに属しています。残りの支店は、別のTPドメインに属し、そのドメインとの通信にはOSI-TPが使用されています。

リスト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

関連項目


  先頭に戻る       前  次