|
始める前に、「トランザクションの紹介」を読む必要があります。
| 注意: | 管理情報は、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台のマシン間でミラーリングされる場合、両方のマシンにこれを行う必要はありません。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パラメータの特性を説明します。
ドメインを介してトランザクションを有効にするには、ドメイン構成ファイル(DMCONFIG)のDM_LOCAL_DOMAINSおよびDM_REMOTE_SERVICESセクション内のパラメータを設定する必要があります。DM_LOCAL_DOMAINSセクションのエントリでは、ローカル・ドメインの特性を定義します。DM_REMOTE_SERVICESセクションのエントリでは、インポートされたサービスや、リモート・ドメインで使用可能なサービスに関する情報を定義します。
ドメイン構成ファイルのDM_LOCAL_DOMAINSセクションでは、ローカル・ドメインおよびそれに関連するゲートウェイ・グループを指定します。このセクションは、ゲートウェイ・グループ(ローカル・ドメイン)ごとにエントリを持つ必要があります。各エントリは、そのグループで実行されているDomainsゲートウェイ・プロセスで必要なパラメータを指定します。
表5-7では、このセクションの5つのトランザクション関連パラメータ(DMTLOGDEV、DMTLOGNAME、DMTLOGSIZE、MAXRDTRAN、およびMAXTRAN)を説明します。
このマシンのDomainsトランザクション・ログのサイズをページ数単位で指定します。0より大きく、Oracle Tuxedoファイル・システム上の空き領域より小さい値を指定します。値を指定しない場合は、デフォルトで100ページが設定されます。
|
|||
ドメイン構成ファイルの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
“”
|