CORBAトランザクションの使用

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

トランザクションの管理

ここでは、以下の内容について説明します。

始める前に、「トランザクションについて」を読む必要があります。

注意: 管理情報は、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ファイルをトランザクションに対応させて変更する

ここでは、以下の内容について説明します。

手順の要約

アプリケーションのUBBCONFIGファイルをトランザクションに対応させるには、RESOURCESMACHINESGROUPS、およびINTERFACESまたはSERVICESセクションを変更する必要があります。

UBBCONFIGファイルのこれらのセクションの変更については、『Oracle Tuxedoアプリケーションの設定』の「構成ファイルの作成」を参照してください。

ステップ1 : RESOURCESセクションでアプリケーション全体のトランザクションを指定する

表5-1では、構成ファイルのRESOURCESセクションで指定可能なトランザクション関連のパラメータを説明しています。

表5-1 RESOURCESセクションのトランザクション関連のパラメータ
パラメータ
意味
MAXGTT
一度に1台のマシン上で設定できるグローバル・トランザクション識別子(GTRID)の数を制限します。指定可能な最大値は2048、最小値は0、デフォルトは100です。MACHINESセクションで、マシンごとにこの値をオーバーライドできます。
グローバル・トランザクションがアクティブな間だけ、表内にそのエントリがあるため、このパラメータには同時トランザクションの数に制限を設ける効果があります。
CMTRET
TP_COMMIT_CONTROL特性の初期設定を指定します。デフォルト値はCOMPLETEです。以下のいずれかの設定が可能です。
  • LOGGED - TP_COMMIT_CONTROL特性はTP_CMT_LOGGEDに設定されます。すべての参加リソースが正常にプリコミットを行った場合にtpcommit()が返されることを示します。
  • COMPLETE - TP_COMMIT_CONTROL特性はTP_CMT_COMPLETEに設定されます。すべての参加リソースが正常にコミットするまでtpcommit()が返されないことを示します。

注意: RMベンダーに問い合せて、適切な設定を決める必要があります。アプリケーションに、XA標準のレイト・コミット実装を使用するリソース・マネージャがある場合、COMPLETEに設定します。すべてのリソース・マネージャがアーリー・コミット実装を使用する場合、パフォーマンス上の理由によりLOGGEDに設定します。この設定はtpscmt()を使用してオーバーライドできます。

ステップ2 :トランザクション・ログ(TLOG)を作成する

ここでは、トランザクションが終了するまで、トランザクションに関する情報が保持されているトランザクション・ログ(TLOG)の作成について説明します。

UDLを作成する

汎用デバイス・リスト(UDL)は、Oracle Tuxedoファイル・システムの地図のようなものです。UDLは、アプリケーションの起動後、共有メモリーにロードされます。UDL内にTLOGデバイス用のエントリを作成するには、グローバル・トランザクションを使用して各マシンにUDLを作成します。TLOGDEVICEが2台のマシン間でミラーリングされる場合、両方のマシンにこれを行う必要はありません。BBLは、起動時にTLOGを初期化して開きます。

UDLを作成するには、アプリケーションを起動する前に次の形式のコマンドを実行します。

tmadmin -c crdl -z config -b blocks

説明:

-z config
UDLの作成場所となるデバイスのフルパス名を指定します。
-b blocks
デバイスに割り当てられるブロック数を指定します。
config
これは、UBBCONFIGファイルのMACHINESセクションにあるTLOGDEVICEパラメータの値と一致している必要があります。

注意: 通常、blocksで指定する値は、TLOGSIZEより小さい値にはしません。たとえば、TLOGSIZEに200ブロックが指定されている場合、-b 500を指定すると、パフォーマンスは低下しません。

TLOGの格納方法については、『Oracle Tuxedoシステムのインストール』を参照してください。

MACHINESセクションでトランザクション関連のパラメータを定義する

UBBCONFIGファイルのMACHINESセクションでパラメータをいくつか設定して、グローバル・トランザクション・ログ(TLOG)を定義できます。TLOGDEVICEのデバイス・リストのエントリは、TLOGが必要な各マシンで手動で作成する必要があります。これは、TUXCONFIGがロードされる前でも後でも作成できますが、必ずシステムを起動する前に作成してください。

注意: トランザクションを使用しない場合、TLOGパラメータは不要です。

表5-2では、構成ファイルのMACHINESセクションで指定可能なトランザクション関連のパラメータを説明しています。

表5-2 MACHINESセクションのトランザクション関連のパラメータ
パラメータ
意味
TLOGNAME
このマシンのDTPトランザクション・ログの名前を指定します。
TLOGDEVICE
このマシンのDTPトランザクション・ログ(TLOG)を格納するOracle TuxedoまたはOracle Tuxedoのファイル・システムを指定します。このパラメータを指定しない場合、そのマシンにはTLOGがないものとみなされます。文字列の最大値は64文字です。
TLOGSIZE
TLOGファイルのサイズを物理ページ単位で指定します。この値には、1 - 2048の範囲の値を設定します。デフォルト値は100です。この値を指定した時点で、未処理トランザクションをマシン上で十分保持できるサイズにします。1ページにつき1つのトランザクションがログに記録されます。ほとんどのアプリケーションでは、デフォルト値で十分です。
TLOGOFFSET
TLOGDEVICEの始めから、このマシンのトランザクション・ログを含むVTOCの開始までのページのオフセット(ページ数)を指定します。この値は0以上で、デバイス上のページ数より小さい値でなければなりません。デフォルト値は0です。
TLOGOFFSETが必要になることはほとんどありません。ただし、2つのVTOCが同じデバイスを共有したり、VTOCが別のアプリケーションに共有されるデバイス(ファイル・システムなど)上に格納される場合は、TLOGOFFSETを使用してデバイスのアドレスに関連する開始アドレスを指定できます。

Domainsトランザクション・ログを作成する(Oracle Tuxedo ATMIサーバーのみ)

ここで説明することは、ATMIサーバーにのみ適用されます。

Domainsゲートウェイ・グループを開始する前に、次のコマンドでDomainsトランザクション・ログを作成できます。

dmadmin(1) crdmlog (crdlog) -d local_domain_name

Domainsトランザクション・ログは、現在のマシン(dmadminを実行中のマシン)の指定されたローカル・ドメインに作成してください。このコマンドでは、DMCONFIGファイルで指定したパラメータが使用されます。指定のローカル・ドメインが現在のマシン上でアクティブであるか、ログがすでに存在する場合は、このコマンドは失敗します。トランザクション・ログがない場合は、Domainsゲートウェイ・グループの起動時に作成されます。

ステップ3 : GROUPSセクションでリソース・マネージャ(RM)とトランザクション・マネージャ・サーバーを定義する

GROUPSセクションへの追加は、以下の2つのカテゴリに分類されます。

GROUPSセクションの例

次のGROUPSセクションの例は、bankapp銀行取引アプリケーションから抜粋したものです。

BANKB1 GRPNO=1 TMSNAME=TMS_SQL TMSCOUNT=2
OPENINFO=”TUXEDO/SQL:<APPDIR>/bankdl1:bankdb:readwrite”

表5-3では、このGROUPSセクションの例で指定したトランザクション値について説明します。

表5-3 サンプルUBBCONFIGファイルのGROUPSセクションのトランザクション値
トランザクション値
意味
BANKB1 GRPNO=1 TMSNAME=TMS_SQL\ TMSCOUNT=2
トランザクション・マネージャ・サーバーの名前(TMS_SQL)と、グループBANKB1で起動するサーバーの数(2)を指定します。
TUXEDO/SQL
リソース・マネージャの公開名です。
<APPDIR>/bankdl1
デバイス名を指定します。
bankdb
データベース名です。
readwrite
アクセス・モードです。

TMSNAME、TMSCOUNT、OPENINFO、およびCLOSEINFOパラメータの特性

表5-4では、TMSNAME、TMSCOUNT、OPENINFO、およびCLOSEINFOパラメータの特性を説明します。

表5-4 TMSNAME、TMSCOUNT、OPENINFO、およびCLOSEINFOパラメータの特性
パラメータ
説明
TMSNAME
実行可能なトランザクション・マネージャ・サーバーの名前です。
トランザクションの構成では必須のパラメータです。
TMSは、NULLトランザクション・マネージャ・サーバーです。
TMSCOUNT
トランザクション・マネージャ・サーバーの数(2 - 10)。
デフォルト値は3です。
OPENINFO
CLOSEINFO
リソース・マネージャを開く、または閉じるための情報を表します。
内容は、リソース・マネージャによって異なります。
リソース・マネージャの名前で始まります。
この値を省略すると、リソース・マネージャが開くための情報を必要としないことを示します。

ステップ4 :トランザクションを開始するためのインタフェースを有効にする

トランザクションを開始するためのインタフェースを有効にするには、UBBCONFIGファイル内のセクションを変更します。変更対象のセクションは、Oracle Tuxedo CORBAサーバーを構成するか、Oracle Tuxedo ATMIサーバーを構成するかによって異なります。

INTERFACESセクションの変更(Oracle Tuxedo CORBAサーバー)

UBBCONFIGファイルのINTERFACESセクションは、Oracle Tuxedo CORBAインタフェースをサポートします。

表5-5では、AUTOTRAN、TRANTIME、およびFACTORYROUTINGパラメータの特性を説明します。

表5-5 AUTOTRAN、TRANTIME、およびFACTORYROUTINGパラメータの特性
パラメータ
説明
AUTOTRAN
  • インタフェースをトランザクションのイニシエータにします。
  • この機能を正しく動作させるには、システム設計者とシステム管理者の間の共同作業が不可欠です。ICFで開発者が定義したトランザクション・ポリシーを知らずに、管理者がこの値をYに設定すると、パラメータを実際に実行した場合の影響が分からなくなる可能性があります。
  • この値がアプリケーションの動作に影響するのは、開発者がoptionalトランザクション・ポリシーを指定した場合だけです。
  • トランザクションがすでに存在している場合、新しいトランザクションは開始しません。
  • デフォルト値はNです。
TRANTIME
  • AUTOTRANトランザクションのタイムアウトを表します。
  • 有効な値は0 - 231 - 1の範囲です。
  • 0はタイムアウト値がないことを示します。
  • デフォルト値は30秒です。
FACTORYROUTING
  • このCORBAインタフェースのファクトリ・ベース・ルーティングに使用するルーティング条件の名前を指定します。
  • ファクトリ・ベース・ルーティングをリクエストしているインタフェースに対してFACTORYROUTINGパラメータを指定する必要があります。

SERVICESセクションの変更(Oracle Tuxedo ATMIサーバー)

以下の3つのパラメータは、SERVICESセクションに指定するトランザクション関連のパラメータです。

表5-6では、AUTOTRAN、TRANTIME、およびROUTINGパラメータの特性を説明します。

表5-6 AUTOTRAN、TRANTIME、およびROUTINGパラメータの特性
パラメータ
説明
AUTOTRAN
トランザクションのイニシエータとしてサービスを指定します。
トランザクションに関するクライアントの負荷を軽減します。
トランザクションがすでに存在している場合、新しいトランザクションは開始しません。
デフォルト値はNです。
TRANTIME
AUTOTRANトランザクションのタイムアウトを表します。
有効な値は0 - 231 - 1の範囲です。
0は、タイムアウトが発生しないことを示します。
デフォルト値は30秒です。
ROUTING
このサービスをリクエストするトランザクションにデータ依存型ルーティングが指定されているROUTINGセクション内のエントリを指します。

 


トランザクションをサポートするようにドメイン構成ファイルを変更する(Oracle Tuxedo CORBAサーバー)

ここでは、以下の内容について説明します。

ドメインを介してトランザクションを有効にするには、ドメイン構成ファイル(DMCONFIG)のDM_LOCAL_DOMAINSおよびDM_REMOTE_SERVICESセクション内のパラメータを設定する必要があります。DM_LOCAL_DOMAINSセクションのエントリでは、ローカル・ドメインの特性を定義します。DM_REMOTE_SERVICESセクションのエントリでは、インポートされたサービスや、リモート・ドメインで使用可能なサービスに関する情報を定義します。

DMTLOGDEV、DMTLOGNAME、DMTLOGSIZE、MAXRDTRAN、およびMAXTRANパラメータの特性

ドメイン構成ファイルのDM_LOCAL_DOMAINSセクションでは、ローカル・ドメインおよびそれに関連するゲートウェイ・グループを指定します。このセクションは、ゲートウェイ・グループ(ローカル・ドメイン)ごとにエントリを持つ必要があります。各エントリは、そのグループで実行されているDomainsゲートウェイ・プロセスで必要なパラメータを指定します。

表5-7では、このセクションの5つのトランザクション関連パラメータ(DMTLOGDEVDMTLOGNAMEDMTLOGSIZEMAXRDTRAN、およびMAXTRAN)を説明します。

表5-7 DMTLOGDEV、DMTLOGNAME、DMTLOGSIZE、MAXRDTRAN、およびMAXTRANパラメータの特性
パラメータ
説明
DMTLOGDEV
このマシンのDomainsトランザクション・ログ(DMTLOG)を含むOracle Tuxedoファイル・システムを指定します。DMTLOGは、Oracle TuxedoシステムのVTOC表としてデバイスに格納されています。このパラメータを指定しない場合、Domainsゲートウェイ・グループはリクエストをトランザクション・モードで処理できません。同じマシン上で実行するローカル・ドメインは、同じDMTLOGDEVファイル・システムを共有できますが、ローカル・ドメインごとに、DMTLOGNAMEキーワードで指定した個別のログ(DMTLOGDEVの表)を作成する必要があります。
DMTLOGNAME
このドメインのDomainsトランザクション・ログの名前を指定します。この名前は、複数のローカル・ドメインで同じDMTLOGDEVを使用する場合、ユニークでなければなりません。値を指定しない場合は、デフォルトでDMTLOG文字列が設定されます。名前は、30文字以内にする必要があります。
DMTLOGSIZE
このマシンのDomainsトランザクション・ログのサイズをページ数単位で指定します。0より大きく、Oracle Tuxedoファイル・システム上の空き領域より小さい値を指定します。値を指定しない場合は、デフォルトで100ページが設定されます。

注意: トランザクション内のドメインの数により、DMTLOGSIZEパラメータで指定するページ数が決まります。トランザクションは、必ずログ・ページと同じわけではありません。

MAXRDTRAN
トランザクションに含めることのできるドメインの最大数を指定します。0より大きく、32,768未満の値を指定します。値を指定しない場合、デフォルト値は16です。
MAXTRAN
このローカル・ドメイン上で同時に実行できるグローバル・トランザクションの最大数を指定します。0以上で、TUXCONFIGファイルに定義されているMAXGTTパラメータ以下の値を指定します。値を指定しない場合は、デフォルトのMAXGTTが指定されます。

AUTOTRANおよびTRANTIMEパラメータの特性(Oracle Tuxedo CORBAおよびATMIサーバー)

ドメイン構成ファイルのDM_REMOTE_SERVICESセクションでは、インポートされ、リモート・ドメインで使用可能になったサービスに関する情報を示します。各リモート・サービスは、特定のリモート・ドメインに関連付けられています。

表5-8では、このセクションの2つのトランザクション関連パラメータ(AUTOTRANおよびTRANTIME)について説明します。

表5-8 AUTOTRANおよびTRANTIMEパラメータの特性
パラメータ
説明
AUTOTRAN
リモート・サービスのトランザクションを自動的に開始/終了するために、ゲートウェイが使用します。この機能は、リモート・サービスに対して、信頼性のあるネットワーク通信を行う場合に必要です。この機能を指定するには、対応するリモート・サービス定義の中のパラメータAUTOTRANYに設定します。
TRANTIME
関連するサービスに対するトランザクションを自動的に開始するまでのデフォルトのタイムアウト値を秒単位で指定します。値には、0以上2147483648未満を指定します。デフォルト値は30秒です。0は、マシンの最大タイムアウト値を示します。

 


トランザクションを使用する分散アプリケーションの例

ここでは、以下の内容について説明します。

ここでは、トランザクションを有効にし、アプリケーションを3つのサイトに分散するサンプルCORBAアプリケーションのサンプル構成ファイルを説明します。このアプリケーションには、以下の機能があります。

構成ファイルは、7つのセクション(RESOURCESMACHINESGROUPSNETWORKSERVERSSERVICES、およびROUTING)で構成されます。

RESOURCESセクション

RESOURCESセクション(リスト5-1を参照)は、以下のパラメータを指定します。

MACHINESセクション

リスト5-2で示されているMACHINESセクションは以下のパラメータを指定します。

GROUPSセクションおよびNETWORKセクション

リスト5-3に示されているGROUPSセクションとNETWORKセクションは、以下のパラメータを指定します。

SERVERS、SERVICES、およびROUTINGセクション

リスト5-4に示されているSERVERSセクション、SERVICESセクション、およびROUTINGセクションは、以下のパラメータを指定します。


  先頭に戻る       前  次