始める前に、「トランザクションについて」を読む必要があります。
注意: | 管理情報は、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) -d
local_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
)を説明します。
このマシンのDomainsトランザクション・ログのサイズをページ数単位で指定します。 0より大きく、Oracle Tuxedoファイル・システム上の空き領域より小さい値を指定します。 値を指定しない場合は、デフォルトで100ページが設定されます。
|
|||
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
“”