|
注意 : | Oracle Tuxedo CORBA 環境でトランザクションを使用する方法については、『Tuxedo CORBA トランザクション』を参照してください。 |
アプリケーションの UBBCONFIG
ファイルをトランザクションに対応させるには、RESOURCES
、MACHINES
、GROUPS
、および SERVICES
セクションを変更する必要があります。
次の表では、RESOURCES
セクションに指定するトランザクション関連のパラメータを説明します。
|
|||
|
汎用デバイス リスト (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 システムのインストール』を参照してください。
グローバル トランザクション ログ (TLOG
) を定義するには、UBBCONFIG
ファイルの MACHINES
セクションでパラメータをいくつか設定する必要があります。
これらのパラメータのうち、TLOGDEVICE
については、TLOG
が必要な各マシン上に TLOGDEVICE
のデバイス リスト エントリを手動で作成しなければなりません。これは、TUXCONFIG
がロードされる前でも後でも作成できますが、必ず、システムを起動する前に作成してください。
次の表では、MACHINES
セクションに指定するトランザクション関連のパラメータを説明します。
Domains ゲートウェイ グループを起動する前に、Domains トランザクション ログを作成する必要があります。Domains トランザクション ログは、現在のマシン (DMADM
を実行中のマシン) の指定されたローカル ドメインに作成してください。ログを作成するには、次のコマンドを入力します。
dmadmin
crdmlog
crdlog
-d
local_domain_name
このコマンドでは、DMCONFIG
ファイルで指定したパラメータが使用されます。指定したローカル ドメインが現在のマシン上でアクティブであるか、またはログがすでに存在する場合、このコマンドは失敗します。トランザクション ログがない場合は、Domains ゲートウェイ グループの起動時に作成されます。
GROUPS
セクションのパラメータにより、特定のグループに対してトランザクション マネージャ サーバ (TMS) およびリソース マネージャ (RM) の属性を定義できます。
OPENINFO
および CLOSEINFO
パラメータを定義します。これらのパラメータの値は、リソース マネージャを開くまたは閉じるために必要な情報を含む文字列です。適切なパラメータ値は、リソース マネージャのベンダ側で用意されます。たとえば、リソース マネージャとして Oracle データベースを使用している場合、次のような値を指定します。OPENINFO=”ORACLE_XA:
Oracle_XA+Acc=P/Scott/*****+SesTm=30+LogDit=/tmp”
以下は、Oracle Tuxedo システムに同梱されている銀行業務サンプル アプリケーション bankapp
の GROUPS
セクションの例です。
BANKB1 GRPNO=1 TMSNAME=TMS_SQL TMSCOUNT=2
OPENINFO=”TUXEDO/SQL:APPDIR
/bankdl1:bankdb:readwrite”
次の表では、GROUPS セクションの例のトランザクション値を説明します。
次の表では、TMSNAME、TMSCOUNT、OPENINFO、および CLOSEINFO パラメータの特性を説明します。
状況によっては、SERVICES
セクションに AUTOTRAN
、TRANTIME
、および ROUTING
という 3 つのトランザクション関連パラメータを設定しなければならない場合があります。
AUTOTRAN
フラグを Y
に設定する必要があります。この設定は、サービスが大規模なトランザクションの一部でない場合や、トランザクションの決定に関わるクライアントサイドの負担を軽減したい場合に役立ちます。既存のトランザクションがある場合にサービスが呼び出されると、この呼び出しは既存のトランザクションの一部になります。デフォルト値は N
です。注意 : | 一般的に、サービスは大規模なトランザクションに参加するため、トランザクションの開始プロセスとしてはクライアントが最も適しています。 |
AUTOTRAN
が Y
に設定されている場合、TRANTIME
パラメータを設定する必要があります。これはトランザクション作成時のタイムアウト値です。0
~ 2,147,483,647
(231 - 1、つまり約 70 年) の値を指定してください。0 は、トランザクションにタイムアウトが設定されていないことを示します。デフォルト値は 30
秒です。ROUTING
パラメータを定義する必要があります。
次の表では、AUTOTRAN
、TRANTIME
、および ROUTING
パラメータの特性を説明します。
ドメインを介してトランザクションを有効にするには、Domains コンフィグレーション ファイル (DMCONFIG
) の DM_LOCAL
および DM_IMPORT
セクション内のパラメータを設定する必要があります。DM_LOCAL
セクションのエントリでは、ローカル ドメインの特性を定義します。DM_IMPORT
セクションのエントリでは、インポートされたサービスや、リモート ドメインで使用可能なサービスを定義します。
Domains コンフィグレーション ファイルの DM_LOCAL
セクションでは、ローカル ドメインおよびそれに関連するゲートウェイ グループを指定します。ゲートウェイ グループ (ローカル ドメイン) ごとに、そのグループで実行するドメイン ゲートウェイ プロセスに必要なパラメータを指定するエントリを作成する必要があります。
次の表では、このセクションの 5 つのトランザクション関連パラメータ (DMTLOGDEV
、DMTLOGNAME
、DMTLOGSIZE
、MAXRAPTRAN
、および MAXTRAN
) を説明します。
Domains コンフィグレーション ファイルの DM_IMPORT
セクションでは、インポートされ、リモート ドメインで使用可能になったサービスに関する情報を提供します。各リモート サービスは、特定のリモート ドメインに関連付けられています。
DM_IMPORT
セクションに、トランザクションをサポートする AUTOTRAN
パラメータと TRANTIME
パラメータを設定することもできます。次の表では、これらのパラメータを説明します。
UBBCONFIG
ファイルの RESOURCES
セクションでは、MAXTRANTIME
という追加のトランザクション タイムアウト プロパティも使用できます。MAXTRANTIME
タイムアウト値が TRANTIME
タイムアウト値またはトランザクションを開始する tpbegin(3c)
の呼び出しで渡されたタイムアウト値より小さい場合、トランザクションのタイムアウトは MAXTRANTIME
の値に削減されます。MAXTRANTIME
は Oracle Tuxedo 8.0 以前を実行するマシン上で開始されるトランザクションには影響を与えません。ただし、Oracle Tuxedo 8.1 以降を実行するマシンがトランザクションの影響を受ける場合は、そのノードに対してコンフィグレーションされている MAXTRANTIME
値までトランザクション タイムアウト値が制限 (必要に応じて減少) されます。
Domains コンフィグレーションの場合は、以下のようなトランザクション処理のシナリオが考えられます。
MAXTRANTIME
パラメータを認識しないノードが影響を受ける場合、または MAXTRANTIME
パラメータを認識するがパラメータが設定されていない場合、トランザクションのタイムアウト値は TRANTIME
、またはトランザクションを開始した tpbegin()
呼び出しで渡されたタイムアウト値によって決まります。TRANTIME
または tpbegin()
のタイムアウト値を超えると、トランザクションの影響を受けるすべての Oracle Tuxedo ノード (トランザクションを開始したノードも含む) は TMS タイムアウト メッセージを生成します。MAXTRANTIME
パラメータを認識するノードが影響を受け、そのノードに対してパラメータが設定されている場合、トランザクションのタイムアウト値はそのノードの MAXTRANTIME
値と同じ値に減少されます。
TRANTIME
または tpbegin()
のタイムアウト値が MAXTRANTIME
以下の場合、トランザクション処理のシナリオは前述のようになります。
TRANTIME
または tpbegin()
タイムアウト値が MAXTRANTIME
より大きい場合、トランザクションのタイムアウト値は影響を受けるノードによって MAXTRANTIME
に削減されます。MAXTRANTIME
タイムアウト値を超えると、影響を受けるノードで TMS タイムアウト メッセージが生成されます。
MAXTRANTIME
の詳細については、UBBCONFIG(5)
の RESOURCES
セクションにある MAXTRANTIME
、または TM_MIB(5)
の T_DOMAIN
クラスにある TA_MAXTRANTIME
を参照してください。
この節では、3 つのサイトに分散される、トランザクション対応の bankapp アプリケーションを定義するコンフィグレーション ファイル例を示します。このアプリケーションには、次の特徴があります。
ファイルは、7 つのセクション (RESOURCES
、MACHINES
、GROUPS
、NETWORK
、SERVERS
、SERVICES
、および ROUTING
) で構成されます。
次のコード リストは、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
MAXSERVERS
、MAXSERVICES
、および MAXGTT
は、デフォルト値より小さい値に設定されています。これは、掲示板のサイズを小さくするためです。MASTER
は SITE3
で、バックアップ マスタは SITE1
です。MODEL
が MP
に設定されており、OPTIONS
が LAN
、MIGRATE
に設定されているため、ネットワーク接続されたコンフィグレーションを使用して移行を行うことができます。BBLQUERY
が 180
に設定されており、SCANUNIT
が 10
に設定されているため、DBBL
はリモートの BBL
を 1800
秒おき (30 分おき) にチェックします。
次のコード リストは、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
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
セクションの例です。
*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
“”