Tuxedo CORBA トランザクション

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

トランザクションの管理

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

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

注意 : 管理情報は、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 台のマシン間でミラーリングされる場合は、一方のマシンに UDL を作成するだけで十分です。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 セクション内のエントリを指します。

 


トランザクションをサポートするように Domains コンフィグレーション ファイルを変更する (Oracle Tuxedo CORBA サーバ)

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

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

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

Domains コンフィグレーション ファイルの 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 サーバ)

Domains コンフィグレーション ファイルの 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 セクションは、以下のパラメータを指定します。


  ページの先頭       前  次