|
| 注意 : | 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 YMAXSERVERS、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
“”
|