|
始める前に、「トランザクションについて」を読む必要があります。
| 注意 : | 管理情報は、Oracle Tuxedo ORB に対する初期オブジェクト参照を取得するために、Bootstrap オブジェクトまたは CORBA Interoperable Naming Service (INS) のいずれを使用している場合でも適用されます。 |
| 注意 : | Oracle Tuxedo CORBA Java クライアントと Oracle Tuxedo CORBA Java クライアント ORB は Tuxedo 8.1 で非推奨になり、サポートされなくなりました。Oracle Tuxedo CORBA Java クライアントおよび Oracle Tuxedo CORBA Java クライアント ORB のテキスト参照、関連するコード サンプルはすべてサードパーティの Java ORB ライブラリの実装/実行の簡易化とプログラマによる参照だけに使用する必要があります。 |
| 注意 : | サード パーティの CORBA Java ORB のテクニカル サポートは、各ベンダによって提供されます。Oracle Tuxedo では、サード パーティの CORBA Java ORB に関する技術的なサポートやマニュアルは提供していません。 |
アプリケーションの UBBCONFIG ファイルをトランザクションに対応させるには、RESOURCES、MACHINES、GROUPS、および INTERFACES または SERVICES セクションを変更する必要があります。
UBBCONFIG ファイルのこれらのセクションの変更については、『Oracle Tuxedo アプリケーションの設定』の「コンフィグレーション ファイルの作成」を参照してください。
表 5-1 では、コンフィグレーション ファイルの RESOURCES セクションで指定可能なトランザクション関連のパラメータを説明しています。
ここでは、トランザクションが終了するまで、トランザクションに関する情報が保持されているトランザクション ログ (TLOG) の作成について説明します。
汎用デバイス リスト (UDL) は、Oracle Tuxedo ファイル システムの地図のようなものです。UDL は、アプリケーションの起動後、共有メモリにロードされます。UDL 内に TLOG デバイス用のエントリを作成するには、グローバル トランザクションを使用して各マシンに UDL を作成します。TLOGDEVICE が 2 台のマシン間でミラーリングされる場合は、一方のマシンに UDL を作成するだけで十分です。BBL は、起動時に TLOG を初期化して開きます。
UDL を作成するには、アプリケーションを起動する前に次の形式のコマンドを実行します。
tmadmin -c crdl -z config -b blocks
| 注意 : | 通常、blocks で指定する値は、TLOGSIZE より小さい値にはしません。たとえば、TLOGSIZE に 200 ブロックが指定されている場合、-b 500 を指定すると、パフォーマンスは低下しません。 |
TLOG の格納方法については、『Oracle Tuxedo システムのインストール』を参照してください。
UBBCONFIG ファイルの MACHINES セクションでパラメータをいくつか設定して、グローバル トランザクション ログ (TLOG) を定義できます。TLOGDEVICE のデバイス リストのエントリは、TLOG が必要な各マシンで手動で作成する必要があります。これは、TUXCONFIG がロードされる前でも後でも作成できますが、必ずシステムを起動する前に作成してください。
| 注意 : | トランザクションを使用しない場合、TLOG パラメータは不要です。 |
表 5-2 では、コンフィグレーション ファイルの MACHINES セクションで指定可能なトランザクション関連のパラメータを説明しています。
Domains ゲートウェイ グループを開始する前に、次のコマンドで Domains トランザクション ログを作成できます。
dmadmin(1)crdmlog (crdlog) -dlocal_domain_name
Domains トランザクション ログは、現在のマシン (dmadmin を実行中のマシン) の指定されたローカル ドメインに作成してください。このコマンドでは、DMCONFIG ファイルで指定したパラメータが使用されます。指定のローカル ドメインが現在のマシン上でアクティブであるか、ログがすでに存在する場合は、このコマンドは失敗します。トランザクション ログがない場合は、Domains ゲートウェイ グループの起動時に作成されます。
GROUPS セクションへの追加は、以下の 2 つのカテゴリに分類されます。
次の GROUPS セクションの例は、bankapp 銀行取引アプリケーションから抜粋したものです。
BANKB1 GRPNO=1 TMSNAME=TMS_SQL TMSCOUNT=2
OPENINFO=”TUXEDO/SQL:<APPDIR>/bankdl1:bankdb:readwrite”
表 5-3 では、この GROUPS セクションの例で指定したトランザクション値について説明します。
表 5-4 では、TMSNAME、TMSCOUNT、OPENINFO、および CLOSEINFO パラメータの特性を説明します。
トランザクションを開始するためのインタフェースを有効にするには、UBBCONFIG ファイル内のセクションを変更します。変更対象のセクションは、Oracle Tuxedo CORBA サーバをコンフィグレーションするか、Oracle Tuxedo ATMI サーバをコンフィグレーションするかによって異なります。
UBBCONFIG ファイルの INTERFACES セクションは、Oracle Tuxedo CORBA インタフェースをサポートします。
AUTOTRAN を Y に設定します。AUTOTRAN=Y は、インタフェースが既にトランザクション モードにある場合は無効です。デフォルト値は N です。AUTOTRAN に値を指定した場合の効果は、実装コンフィグレーション ファイル (ICF) でインタフェースの開発者が指定したトランザクション ポリシーによって異なります。このトランザクション ポリシーは実行時に、関連する T_IFQUEUE MIB オブジェクトのトランザクション ポリシーの属性になります。この値がアプリケーションの動作に影響するのは、開発者が optional トランザクション ポリシーを指定した場合だけです。| 注意 : | この機能を正しく動作させるには、設計者と管理者の間の共同作業が不可欠です。インタフェースの ICF で開発者が定義したトランザクション ポリシーを知らずに、管理者がこの値を Y に設定すると、パラメータを実際に実行した場合の影響が分からなくなる可能性があります。 |
AUTOTRAN が Y に設定されている場合、TRANTIME パラメータを設定する必要があります。これは、作成するトランザクションに対するタイムアウト値 (秒) を指定します。0 ~ 2,147,483,647
表 5-5 では、AUTOTRAN、TRANTIME、および FACTORYROUTING パラメータの特性を説明します。
以下の 3 つのパラメータは、SERVICES セクションに指定するトランザクション関連のパラメータです。
AUTOTRAN フラグを Y に設定する必要があります。この設定は、サービスが大規模なトランザクションの一部でない場合や、トランザクションの決定に関わるクライアントサイドの負担を軽減したい場合に役立ちます。既存のトランザクションがある場合にサービスが呼び出されると、この呼び出しは既存のトランザクションの一部になります。デフォルト値は N です。| 注意 : | 通常、サービスは大規模なトランザクションに参加する可能性があるため、トランザクションの開始プロセスとしてはクライアントが最も適しています。 |
AUTOTRAN が Y に設定されている場合、TRANTIME パラメータを設定する必要があります。これは、作成するトランザクションに対するタイムアウト値 (秒) です。0 ~ 2,147,483,647 (231 - 1、つまり約 70 年) の値を指定してください。0 は、トランザクションにタイムアウトが設定されていないことを示します。デフォルト値は 30 秒です。ROUTING パラメータを指定する必要があります。
表 5-6 では、AUTOTRAN、TRANTIME、および ROUTING パラメータの特性を説明します。
ドメインを介してトランザクションを有効にするには、Domains コンフィグレーション ファイル (DMCONFIG) の DM_LOCAL_DOMAINS および DM_REMOTE_SERVICES セクション内のパラメータを設定する必要があります。DM_LOCAL_DOMAINS セクションのエントリでは、ローカル ドメインの特性を定義します。DM_REMOTE_SERVICES セクションのエントリでは、インポートされたサービスや、リモート ドメインで使用可能なサービスに関する情報を定義します。
Domains コンフィグレーション ファイルの DM_LOCAL_DOMAINS セクションでは、ローカル ドメインおよびそれに関連するゲートウェイ グループを指定します。このセクションは、ゲートウェイ グループ (ローカル ドメイン) ごとにエントリを持つ必要があります。各エントリは、そのグループで実行されている Domains ゲートウェイ プロセスで必要なパラメータを指定します。
表 5-7 では、このセクションの 5 つのトランザクション関連パラメータ (DMTLOGDEV、DMTLOGNAME、DMTLOGSIZE、MAXRDTRAN、および MAXTRAN) を説明します。
DMTLOG) を含む Oracle Tuxedo ファイル システムを指定します。DMTLOG は、Oracle Tuxedo システムの VTOC テーブルとしてデバイスに格納されています。このパラメータを指定しない場合、Domains ゲートウェイ グループは要求をトランザクション モードで処理できません。同じマシン上で実行するローカル ドメインは、同じ DMTLOGDEV ファイル システムを共有できますが、ローカル ドメインごとに、DMTLOGNAME キーワードで指定した個別のログ (DMTLOGDEV の表) を作成する必要があります。
|
|||
|
|||
Domains コンフィグレーション ファイルの DM_REMOTE_SERVICES セクションでは、インポートされ、リモート ドメインで使用可能になったサービスに関する情報を示します。各リモート サービスは、特定のリモート ドメインに関連付けられています。
表 5-8 では、このセクションの 2 つのトランザクション関連パラメータ (AUTOTRAN および TRANTIME) について説明します。
ここでは、トランザクションを有効にし、アプリケーションを 3 つのサイトに分散するサンプル CORBA アプリケーションのサンプル コンフィグレーション ファイルを説明します。このアプリケーションには、以下の機能があります。
コンフィグレーション ファイルは、7 つのセクション (RESOURCES、MACHINES、GROUPS、NETWORK、SERVERS、SERVICES、および ROUTING) で構成されます。
RESOURCES セクション (コード リスト 5-1 を参照) は、以下のパラメータを指定します。
MAXSERVERS、MAXSERVICES、および MAXGTT はデフォルトより少ない値です。これによって、掲示板のサイズが小さくなります。MASTER は SITE3 で、バックアップ マスタは SITE1 です。MODEL が MP に設定されており、OPTIONS が LAN、MIGRATE に設定されているため、ネットワーク接続されたコンフィグレーションを使用して移行を行うことができます。BBLQUERY が 180 に設定されており、SCANUNIT が 10 に設定されているため、DBBL は、リモートの BBL を 1800 秒おき (30 分おき) にチェックします。*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
コード リスト 5-2 で示されている MACHINES セクションは以下のパラメータを指定します。
TLOGDEVICE および TLOGNAME は、トランザクションが行われることを示します。TYPE パラメータはすべて異なりますが、これはマシン間で送られるすべてのメッセージにエンコード/デコードが行われることを示します。*MACHINES
Gisela 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”
コード リスト 5-3 に示されている GROUPS セクションと NETWORK セクションは、以下のパラメータを指定します。
TMSCOUNT は 2 に設定されますが、これはグループあたり 2 つの TMS_SQL トランザクション マネージャ サーバだけが起動されることを示します。OPENINFO 文字列は、アプリケーションがデータベース アクセスを行うことを示します。*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”
コード リスト 5-4 に示されている SERVERS セクション、SERVICES セクション、および ROUTING セクションは、以下のパラメータを指定します。
TLR サーバには、tpsrvrinit() 関数に渡される -T number があります。ACCOUNT_ID フィールドでルーティングされます。AUTOTRAN モードではサービスは行われません。*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
“”
|