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

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

トランザクション対応のATMIアプリケーションの構成

このトピックには次の項が含まれます:

注: Oracle Tuxedo CORBA環境でトランザクションを使用する方法については、『CORBAトランザクションの使用』を参照してください。

 


UBBCONFIGファイルをATMIトランザクションに対応させて変更する

トランザクションに対応させるには、次に示すようにアプリケーションのUBBCONFIGファイルのRESOURCESMACHINESGROUPSおよびSERVICESセクションを変更する必要があります。

このセクションで. . .
次を指定します. . .
RESOURCES
アプリケーションに設定できるトランザクションの数、およびコミット制御フラグの値を指定します。
MACHINES
各マシンのTLOG情報を指定します。
GROUPS
各リソース・マネージャおよびトランザクション・マネージャ・サーバーに関する情報を指定します。
SERVICES
自動トランザクション・オプションを有効にします。

 


RESOURCESセクションでグローバル・トランザクションのパラメータを指定する

次の表では、RESOURCESセクションに指定するトランザクション関連のパラメータを説明します。

このパラメータを設定します. . .

次を行うには. . .
MAXGTT
一度に1台のマシン上で設定できるグローバル・トランザクション識別子(GTRID)の数を制限します。指定可能な最大値は2048、最小値は0、デフォルト値は100です。MAXGTTの値は、MACHINESセクションでマシンごとにオーバーライドできます。
グローバル・トランザクションがアクティブな間だけ、表内にそのエントリがあるため、このパラメータには同時トランザクションの数に制限を設ける効果があります。
CMTRET
TP_COMMIT_CONTROL特性の初期設定が次のいずれかであることを示します。
  • LOGGED - TP_COMMIT_CONTROL特性はTP_CMT_LOGGEDに設定されます。すべての参加リソースが正常にプリコミットを行った場合にtpcommit()が返されることを示します。
  • COMPLETE - TP_COMMIT_CONTROL特性はTP_CMT_COMPLETEに設定されます。すべての参加リソースが正常にコミットするまでtpcommit()が返されないことを示します。
デフォルトはCOMPLETEです。
適切な設定値については、リソース・マネージャ(RM)のベンダーに問い合せてください。XA標準のレイト・コミット実装を使用するリソース・マネージャがある場合、COMPLETEに設定します。すべてのリソース・マネージャがアーリー・コミット実装を使用する場合は、パフォーマンス上の理由によりLOGGEDに設定します。(この設定はtpscmt()を使用してオーバーライドできます。)
MAXTRANTIME
トランザクションの最長のタイムアウト値を指定します。
有効な値は0 - 2,147,483,647の範囲です。
0はトランザクションのタイムアウト値に制限がないことを表します。
デフォルトは0です。

注: MAXTRANTIMEの詳細は、UBBCONFIG(5)RESOURCESセクションにあるMAXTRANTIME、またはTM_MIB(5)T_DOMAINクラスにあるTA_MAXTRANTIMEを参照してください。

 


MACHINESセクションでトランザクション・ログ(TLOG)を作成する

TLOGを作成するには、以下のタスクを実行します。

UDLを作成する

汎用デバイス・リスト(UDL : Universal Device List)は、Oracle Tuxedoファイル・システムの地図のようなものです。UDLは、アプリケーションの起動後、共有メモリーにロードされます。TLOGは、トランザクションが終了するまで、トランザクションに関する情報が保持されているログを参照します。UDL内にTLOGデバイス用のエントリを作成するには、グローバル・トランザクションを使用して各マシンにUDLを作成します。(TLOGDEVICEが2台のマシン間でミラーリングされる場合、対になるマシンでこれを行う必要はありません。)BBLは、起動時にTLOGを初期化して開きます。

UDLを作成するには、アプリケーションを起動する前に次のコマンドを実行します。

tmadmin -c crdl -z config -b blocks

注: デバイスがすでに存在する場合、このコマンドは失敗します。

configの値は、UDLの作成先デバイスのフルパス名です。これは、構成ファイルのMACHINESセクションにあるTLOGDEVICEパラメータの値と一致している必要があります。blocksには、デバイス上に割り当てるブロックの数を指定します。

注: blocksの値がTLOGSIZEの値より小さいと、パフォーマンスが低下するおそれがあります。したがって、blocksにはTLOGSIZEより大きい値を指定してください。たとえば、TLOGSIZEに200ブロックが指定されている場合、-b 500を指定すると、パフォーマンスは低下しません。

TLOGの保存方法については、『Oracle Tuxedoシステムのインストール』を参照してください。

MACHINESセクションでトランザクション関連のパラメータを定義する

グローバル・トランザクション・ログ(TLOG)を定義するには、UBBCONFIGファイルのMACHINESセクションでパラメータをいくつか設定する必要があります。

これらのパラメータのうち、TLOGDEVICEについては、TLOGが必要な各マシン上にTLOGDEVICEのデバイス・リスト・エントリを手動で作成しなければなりません。これは、TUXCONFIGがロードされる前でも後でも作成できますが、必ず、システムを起動する前に作成してください。

次の表では、MACHINESセクションに指定するトランザクション関連のパラメータを説明します。

このパラメータを設定します. . .
次を指定するには. . .
TLOGNAME
このマシンのDTPトランザクション・ログの名前を指定します。
TLOGDEVICE
このマシンのDTPトランザクション・ログ(TLOG)を含むOracle Tuxedoファイル・システムを指定します。このパラメータを指定しないと、マシンにはTLOGがないと見なされます。値に使用できる文字数は、最大64文字です。
TLOGSIZEE
TLOGファイルのサイズを指定します(物理ページ単位)。この値には、1 - 2048の範囲の値を設定します。デフォルト値は100です。指定した時点で、未処理トランザクションを十分保持できるマシン上のサイズを指定します。1ページにつき1つのトランザクションがログに記録されます。ほとんどのアプリケーションではデフォルト値で十分です。
TLOGOFFSET
TLOGDEVICEの始めから、このマシンのトランザクション・ログを含むVTOCの開始までのページのオフセット(ページ数)。この値は0以上で、デバイス上のページ数より小さい値でなければなりません。デフォルトは0です。
TLOGOFFSETが必要になることはほとんどありません。ただし、2つのVTOCが同じデバイスを共有したり、VTOCが別のアプリケーションに共有されるデバイス(ファイル・システムなど)上に格納される場合は、TLOGOFFSETを使用してデバイスのアドレスに関連する開始アドレスを指定できます。

Oracle DatabaseへのTLOGの書込み

Oracleデータベースにtlogを書き込む場合、UDLを作成する必要はありません
次の手順を実行する必要があります。

  1. Oracle Database 10gクライアント(以降)をインストールし、libclntsh.so.x.x (例えば、libclntsh.so.10.1)のlibclntsh.soリンクを作成して、Linuxプラットフォームでlibclntsh.soリンクをLD_LIBRARY_PATHを設定します。
  2. DB:Oracle_XA: …」という形式を使用して、UBBCONFIG(5) TLOGDEVICEまたはDMCONFIG(5) DMTLOGDEVを設定します。
  3. tmadminおよびdmadminコマンドを使用してtlogを作成します。
注: tlogを書き込むことができるのはOracleデータベースのみです。サードパーティのデータベースはサポートされていません。

Domainsトランザクション・ログを作成する

Domainsゲートウェイ・グループを起動する前に、Domainsトランザクション・ログを作成する必要があります。Domainsトランザクション・ログは、現在のマシン(DMADMを実行中のマシン)の指定されたローカル・ドメインに作成してください。ログを作成するには、次のコマンドを入力します。

dmadmin crdmlog crdlog -d local_domain_name

このコマンドでは、DMCONFIGファイルで指定したパラメータが使用されます。指定したローカル・ドメインが現在のマシン上でアクティブであるか、またはログがすでに存在する場合、このコマンドは失敗します。トランザクション・ログがない場合は、Domainsゲートウェイ・グループの起動時に作成されます。

関連項目

 


GROUPSセクションでリソース・マネージャとトランザクション・マネージャ・サーバーを定義する

GROUPSセクションのパラメータにより、特定のグループに対してトランザクション・マネージャ・サーバー(TMS)およびリソース・マネージャ(RM)の属性を定義できます。

GROUPSセクションの例

以下は、Oracle Tuxedoシステムに同梱されている銀行業務サンプル・アプリケーションbankappGROUPSセクションの例です。

BANKB1 GRPNO=1 TMSNAME=TMS_SQL TMSCOUNT=2
OPENINFO=”TUXEDO/SQL:
APPDIR/bankdl1:bankdb:readwrite”

GROUPSセクションの例でのトランザクション値

次の表では、GROUPSセクションの例のトランザクション値を説明します。

トランザクション値
目的
BANKB1 GRPNO=1 TMSNAME=TMS_SQL TMSCOUNT=2
トランザクション・マネージャ・サーバーの名前(TMS_SQL)と、グループBANKB1で起動するサーバーの数(2)を指定します。
TUXEDO/SQL
リソース・マネージャの公開名です。
APPDIR/bankdl1
デバイス名です。
bankdb
データベース名です。
readwrite
アクセス・モードです。

TMSNAME、TMSCOUNT、OPENINFO、およびCLOSEINFOパラメータの特性

次の表では、TMSNAME、TMSCOUNT、OPENINFO、およびCLOSEINFOパラメータの特性を説明します。

このパラメータを設定します. . .

次を指定するには. . .
TMSNAME
実行可能なトランザクション・マネージャ・サーバーの名前です。
トランザクション対応のアプリケーションでは、必須パラメータです。
TMSは、NULLトランザクション・マネージャ・サーバーです。
TMSCOUNT
トランザクション・マネージャ・サーバーの数。2 - 10の範囲の値を設定します。
デフォルトは3です。このパラメータは省略できます。
OPENINFO、CLOSEINFO
リソース・マネージャを開くまたは閉じるために必要な情報です。
内容は、リソース・マネージャによって異なります。
値はリソース・マネージャの名前で始まります。
この値を省略すると、RMが開くまたは閉じるための情報を必要としないことを示します。

 


SERVICESセクションでサービスに対するトランザクションの開始を有効にする

状況によっては、SERVICESセクションにAUTOTRANTRANTIME、およびROUTINGという3つのトランザクション関連パラメータを設定しなければならない場合があります。

AUTOTRAN、TRANTIME、およびROUTINGパラメータの特性

次の表では、AUTOTRANTRANTIME、およびROUTINGパラメータの特性を説明します。

このパラメータを設定します. . .

次を行うには. . .
AUTOTRAN
トランザクションのイニシエータとしてサービスを指定します。
このパラメータを正しく機能させるには、アプリケーション設計者とアプリケーション管理者の間のコミュニケーションが重要です。開発者が設定したICFパラメータを知らずに管理者がこの値をYに設定すると、アプリケーションの誤動作や失敗が生じるおそれがあります。
トランザクションがすでに存在している場合、新しいトランザクションは開始しません。
デフォルトはNです。
TRANTIME
AUTOTRANトランザクションのタイムアウト値を指定します。
有効な値は0 - 2,147,483,647の範囲です。
0は、タイムアウトが発生しないことを示します。
デフォルトは30秒です。
ROUTING
このサービスをリクエストするトランザクションにデータ依存型ルーティングが指定されているROUTINGセクション内のエントリを指します。

 


トランザクションをサポートするようにDomains構成ファイルを変更する

ドメインを介してトランザクションを有効にするには、Domains構成ファイル(DMCONFIG)のDM_LOCALおよびDM_IMPORTセクション内のパラメータを設定する必要があります。DM_LOCALセクションのエントリでは、ローカル・ドメインの特性を定義します。DM_IMPORTセクションのエントリでは、インポートされたサービスや、リモート・ドメインで使用可能なサービスを定義します。

DMTLOGDEV、DMTLOGNAME、DMTLOGSIZE、MAXRAPTRAN、およびMAXTRANパラメータの特性

Domains構成ファイルのDM_LOCALセクションでは、ローカル・ドメインおよびそれに関連するゲートウェイ・グループを指定します。ゲートウェイ・グループ(ローカル・ドメイン)ごとに、そのグループで実行するドメイン・ゲートウェイ・プロセスに必要なパラメータを指定するエントリを作成する必要があります。

次の表では、このセクションの5つのトランザクション関連パラメータ(DMTLOGDEVDMTLOGNAMEDMTLOGSIZEMAXRAPTRAN、およびMAXTRAN)を説明します。

このパラメータを設定します. . .

次を指定するには. . .
DMTLOGDEV
このマシンのDomainsトランザクション・ログ(DMTLOG)を含むOracle Tuxedoファイル・システムを指定します。DMTLOGは、TLOGDEVICE (Oracle Tuxedoファイル・システム)上にOracle TuxedoのVTOC表として格納されます。このパラメータを指定しない場合、Domainsゲートウェイ・グループはリクエストをトランザクション・モードで処理できません。同じマシン上で実行するローカル・ドメインは、同じDMTLOGDEVファイル・システムを共有できますが、ローカル・ドメインごとに個別のログ(DMTLOGDEV)を作成する必要があります。各ログの名前は、DMTLOGNAMEパラメータによって決まります。
DMTLOGNAME
このドメインのDomainsトランザクション・ログの名前を指定します。このドメインが他のローカル・ドメインと同じファイル・システム上にある場合(DMTLOGDEVの値が同じ)、DMTLOGNAMEの値はログごとに一意でなければなりません。値には30文字以内の文字を使用できます。デフォルトはDMTLOGです。
DMTLOGSIZE
このマシンのDomainsトランザクション・ログのサイズを指定します(ページ数単位)。0より大きく、Oracle Tuxedoファイル・システム上の空き領域より小さい値を指定します。デフォルトは100ページです。

注: トランザクション内のドメインの数により、DMTLOGSIZEパラメータで指定するページ数が決まります。トランザクションとログのページ数は、1対1でマッピングされません。

MAXRAPTRAN
トランザクションに含めることのできるドメインの最大数を指定します。ゼロより大きく32,768より小さい値にする必要があります。デフォルトは16です。
MAXTRAN
このローカル・ドメイン上で同時に実行できるグローバル・トランザクションの最大数を指定します。0以上で、構成ファイルに定義されているMAXGTTパラメータ以下の値を指定します。デフォルトは、MAXGTTの値です。

AUTOTRANおよびTRANTIMEパラメータの特性

Domains構成ファイルのDM_IMPORTセクションでは、インポートされ、リモート・ドメインで使用可能になったサービスに関する情報を提供します。各リモート・サービスは、特定のリモート・ドメインに関連付けられています。

DM_IMPORTセクションに、トランザクションをサポートするAUTOTRANパラメータとTRANTIMEパラメータを設定することもできます。次の表では、これらのパラメータを説明します。

このパラメータは. . .
次にように使用されます. . .
AUTOTRAN
リモート・サービスのトランザクションを自動的に開始/終了するために、ゲートウェイによって。この機能は、リモート・サービスに対して、信頼性のあるネットワーク通信を行う場合に必要です。この機能をリクエストするには、対応するリモート・サービスのエントリでAUTOTRANパラメータをYに設定します。
TRANTIME
定義されたサービスに対して自動的に開始されるトランザクションのタイムアウト値を秒単位で指定します。0以上2147483648未満の値を指定します。0は、マシンの最大タイムアウト値を示します。デフォルトは30秒です。

UBBCONFIGファイルのRESOURCESセクションでは、MAXTRANTIMEという追加のトランザクション・タイムアウト・プロパティも使用できます。MAXTRANTIMEタイムアウト値がTRANTIMEタイムアウト値またはトランザクションを開始するtpbegin(3c)の呼出しで渡されたタイムアウト値より小さい場合、トランザクションのタイムアウトはMAXTRANTIMEの値に削減されます。MAXTRANTIMEはOracle Tuxedo 8.0以前を実行するマシン上で開始されるトランザクションには影響を与えません。ただし、Oracle Tuxedo 8.1以降を実行するマシンがトランザクションの影響を受ける場合は、そのノードに対して構成されているMAXTRANTIME値までトランザクション・タイムアウト値が制限(必要に応じて減少)されます。

Domains構成の場合は、以下のようなトランザクション処理のシナリオが考えられます。

MAXTRANTIMEの詳細は、UBBCONFIG(5)RESOURCESセクションにあるMAXTRANTIME、またはTM_MIB(5)T_DOMAINクラスにあるTA_MAXTRANTIMEを参照してください。

 


例:トランザクションを使用する分散アプリケーション

この項では、3つのサイトに分散される、トランザクション対応のbankappアプリケーションを定義する構成ファイル例を示します。このアプリケーションには、次の特徴があります。

ファイルは、7つのセクション(RESOURCESMACHINESGROUPSNETWORKSERVERSSERVICES、およびROUTING)で構成されます。

RESOURCESセクションの例

次のリストは、RESOURCESセクションの例です。

リスト5-1 RESOURCESセクションの例
*RESOURCES
#
IPCKEY 99999
UID 1
GID 0
PERM 0660
MAXACCESSERS 25
MAXSERVERS 25
MAXSERVICES 40
MAXGTT 20
MASTER SITE3, SITE1
SCANUNIT 10
SANITYSCAN 12
BBLQUERY 180
BLOCKTIME 30
DBBLWAIT 6
OPTIONS LAN, MIGRATE
MODEL MP
LDBAL Y

このリストでは、次の点に注意してください。

MACHINESセクションの例

次のリストは、MACHINESセクションの例です。

リスト5-2 MACHINESセクションの例
*MACHINES
giselle LMID=SITE1
TUXDIR=”/usr/tuxedo”
APPDIR=”/usr/home”
ENVFILE=”/usr/home/ENVFILE”
TLOGDEVICE=”/usr/home/TLOG”
TLOGNAME=TLOG
TUXCONFIG=”/usr/home/tuxconfig”
TYPE=”3B600”

romeo LMID=SITE2
TUXDIR=”/usr/tuxedo”
APPDIR=”/usr/home”
ENVFILE=”/usr/home/ENVFILE”
TLOGDEVICE=”/usr/home/TLOG”
TLOGNAME=TLOG
TUXCONFIG=”/usr/home/tuxconfig”
TYPE=”SEQUENT”

juliet LMID=SITE3
TUXDIR=”/usr/tuxedo”
APPDIR=’/usr/home”
ENVFILE=”/usr/home/ENVFILE”
TLOGDEVICE=”/usr/home/TLOG”
TLOGNAME=TLOG
TUXCONFIG=”/usr/home/tuxconfig”
TYPE=”AMDAHL”

このリストでは、次の点に注意してください。

GROUPSセクションおよびNETWORKセクションの例

次のリストは、GROUPSセクションおよびNETWORKセクションの例です。

リスト5-3 GROUPSセクションおよびNETWORKセクションの例
*GROUPS
DEFAULT: TMSNAME=TMS_SQL TMSCOUNT=2
BANKB1 LMID=SITE1 GRPNO=1
OPENINFO=”TUXEDO/SQL:/usr/home/bankdl1:bankdb:readwrite”
BANKB2 LMID=SITE2 GRPNO=2
OPENINFO=”TUXEDO/SQL:/usr/home/bankdl2:bankdb:readwrite”
BANKB3 LMID=SITE3 GRPNO=3
OPENINFO=”TUXEDO/SQL:/usr/home/bankdl3:bankdb:readwrite”

*NETWORK
SITE1 NADDR=”0X0002ab117B2D4359”
BRIDGE=”/dev/tcp”
NLSADDR=”0X0002ab127B2D4359”

SITE2 NADDR=”0X0002ab117B2D4360”
BRIDGE=”/dev/tcp”
NLSADDR=”0X0002ab127B2D4360”

SITE3 NADDR=”0X0002ab117B2D4361”
BRIDGE=”/dev/tcp”
NLSADDR=”0X0002ab127B2D4361”

このリストでは、次の点に注意してください。

SERVERS、SERVICES、およびROUTINGセクションの例

次のリストは、SERVERSSERVICES、およびROUTINGセクションの例です。

リスト5-4 SERVERS、SERVICES、およびROUTINGセクションの例
*SERVERS
DEFAULT: RESTART=Y MAXGEN=5 REPLYQ=N CLOPT=”-A”
TLR SRVGRP=BANKB1 SRVID=1 CLOPT=”-A -- -T 100"
TLR SRVGRP=BANKB2 SRVID=3 CLOPT=”-A -- -T 400"
TLR SRVGRP=BANKB3 SRVID=4 CLOPT=”-A -- -T 700"
XFER SRVGRP=BANKB1 SRVID=5 REPLYQ=Y
XFER SRVGRP=BANKB2 SRVID=6 REPLYQ=Y
XFER SRVGRP=BANKB3 SRVID=7 REPLYQ=Y

*SERVICES
DEFAULT: AUTOTRAN=N
WITHDRAW ROUTING=ACCOUNT_ID
DEPOSIT ROUTING=ACCOUNT_ID
TRANSFER ROUTING=ACCOUNT_ID
INQUIRY ROUTING=ACCOUNT_ID

*ROUTING
ACCOUNT_ID FIELD=ACCOUNT_ID BUFTYPE=”FML”
RANGES=”MON - 9999:*,
10000 - 39999:BANKB1
40000 - 69999:BANKB2
70000 - 100000:BANKB3
“”

このリストでは、次の点に注意してください。

関連項目


  先頭に戻る       前  次