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

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

トランザクション対応の ATMI アプリケーションのコンフィグレーション

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

注意 : Oracle Tuxedo CORBA 環境でトランザクションを使用する方法については、『Tuxedo 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 台のマシン間でミラーリングされる場合は、一方のマシンに UDL を作成するだけで十分です)。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 ファイルのサイズを指定します (物理ページ単位)。この値には、12048 の範囲の値を設定します。デフォルト値は 100 です。指定した時点で、未処理トランザクションを十分保持できるマシン上のサイズを指定します。1 ページにつき 1 つのトランザクションがログに記録されます。ほとんどのアプリケーションではデフォルト値で十分です。
TLOGOFFSET
TLOGDEVICE の始めから、このマシンのトランザクション ログを含む VTOC の開始までのページのオフセット (ページ数)。この値は 0 以上で、デバイス上のページ数より小さい値でなければなりません。デフォルト値は 0 です。
TLOGOFFSET が必要になることはほとんどありません。ただし、2 つの VTOC が同じデバイスを共有したり、VTOC が別のアプリケーションに共有されるデバイス (ファイルシステムなど) 上に格納される場合は、TLOGOFFSET を使用してデバイスのアドレスに関連する開始アドレスを指定できます。

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 以上 2,147,483,648 未満の値を指定します。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
“”

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

関連項目


  ページの先頭       前  次