![]() |
![]() |
|
|
トランザクションで GTRID マッピングを使用する
BEA Tuxedo システムのトランザクション・ツリーは、2 レベルで構成されています。ルートには、グローバル・トランザクションを調整するゲートウェイ・グループがあり、トランザクションはブランチに含まれます。各ゲートウェイ・グループは、ほかのグループからは独立して、グローバル・トランザクションの一部を実行します。したがって、各グループは、暗黙的にトランザクション・ブランチを定義します。BEA Tuxedo システムは、トランザクション・マネージャ・サーバ (TMS: Transaction Manager Servers) を使用して、各ブランチの完了を確認しながら、グローバル・トランザクションの完了を調整します。
GTRID は、グローバル・トランザクションの識別子です。 GTRID マッピングでは、ドメインの境界をまたぐトランザクション・ツリーの構築方法を定義します。GTRID を指定するには、コンフィギュレーション・ファイルの RESOURCES セクションの MAXGTT パラメータを使用します。
密結合関係と疎結合関係の定義
X/Open DTP モデルのトランザクション・マネージャ・サーバ (TMS) は、リソース・マネージャ (RM) との関係を表すトランザクション・ツリーを構築できます。関係は「密結合」または「疎結合」で定義し、XA インターフェイスで使用されるトランザクション識別子 (XID) が使用されます。
「密結合関係」では、1 つのグローバル・トランザクションに参加するすべてのプロセスで同じトランザクション識別子 (XID) が使用され、同じ RM へのアクセスが行われます。この関係が確立されていると、プロセス間のデータ共有性を最大化できます。つまり、XA 準拠の RM では、同じ XID のプロセスによって使用されるリソースがロックを共有すると見なされます。BEA Tuxedo システムでは、「グループ」の概念に基づいて密結合関係を実現します。つまり、指定されたグローバル・トランザクションの代わりに、グループがすべての作業を行い、それらの作業は同じトランザクション・ブランチに設定されます。グループが行ったすべてのプロセスには、同じ XID が指定されます。
「疎結合関係」の TMS は、グローバル・トランザクションに参加する各作業に対して、トランザクション・ブランチを生成します。RM は、各トランザクション・ブランチを別々に処理します。トランザクション・ブランチ間では、データやロックは共有されません。トランザクション・ブランチ間でデッドロックが発生すると、グローバル・トランザクションがロールバックされます。BEA Tuxedo アプリケーションでは、1 つのグローバル・トランザクションにさまざまなグループが参加している場合、グループごとに別のトランザクション・ブランチが定義され、疎結合関係が確立されます。
Domains をまたがるグローバル・トランザクション
単独の BEA Tuxedo アプリケーション内のグローバル・トランザクションと、ドメインをまたがるグローバル・トランザクションとでは、いくつかの違いがあります。最大の相違点は、Domains のフレームワークでは、トランザクション・ツリーの構成を 2 レベルに下げることができないことです。これには、次の 2 つの理由があります。
つまり、ドメインをまたがるコミット・プロトコルは、階層型でなければなりません。ループ・バックされたサービス要求も、トランザクション・ツリーでは新しいブランチとして定義されます。
注記 ループ・バック要求とは、別のドメインに送信された後で、送信元のドメインに返される要求です。たとえば、ドメイン A がドメイン B のサービスを要求したとします。ドメイン B のサービスは、ドメイン A の別のサービスを要求します。トランザクション・ツリーには、ネットワーク・レベルで 2 つのブランチがあります。つまり、ドメイン A からドメイン B への要求を示すブランチ b1 と、ドメイン B からドメイン A への要求を示すブランチ b2 です。ドメイン A は、ドメイン B からコミットの指示を受けるまで、ブランチ b2 の作業をコミットすることはできません。
ドメインをまたがるグローバル・トランザクションのトランザクション・ツリー構造は、対応する Domains のインスタンスが使用する分散トランザクション処理プロトコルにも依存します。たとえば、OSI TP プロトコルのダイアログ (OSI TP でのサービス要求) は、それぞれ別のトランザクション・ブランチに関連付けられています。BEA Tuxedo システムでは、OSI TP インスタンスがサービス要求でダイアログを使用するため、各サービス要求は別のトランザクション・ブランチにマッピングされます。XAP-TP インターフェイスは、このマッピングを隠し、ユーザ定義の識別子 (BEA Tuxedo のインプリメンテーションでは GTRID) を使用して OSI TP サブツリー全体を参照するようなメカニズムを提供します。GTRID は、トランザクション・ツリーの構築方法を XAP-TP に指示します。つまり、指定された OSI TP トランザクションに含めるダイアログを指定します。したがって、BEA Tuxedo からは、OSI TP サブツリー全体が 1 つのトランザクション・ブランチとして管理されているように見えます。
しかし、この特徴は、ルート・ドメインから下位ドメインに送信されるサービス要求にのみ適用されます。逆方向で送信されるサービス要求には適用されません。OSI TP のインスタンスは、続いて疎結合関係をインプリメントします。受信したサービス要求は、新しい BEA Tuxedo グローバル・トランザクションにマッピングされます。
TDomain のインスタンスは、密結合関係を実現することにより、GTRID のマッピングを最適化しようとします。TDomain では、同じグローバル・トランザクションから発行された複数のサービス要求は、同じネットワーク・トランザクション・ブランチにマッピングされます。したがって、受信したサービス要求は、1 つの BEA Tuxedo トランザクションにマッピングされます。ただし、ドメイン間通信の階層構造とドメイン間の関係を示すトランザクション・ツリーは保持される必要があります。
TDomain による最適化処理は、単一のドメインに対してのみ適用されます。トランザクションに複数のドメインが関係する場合、ネットワーク・トランザクション・ツリーには、ドメイン間の通信ごとに少なくとも 1 つのブランチが必要です。したがって、ドメインにまたがるネットワーク・トランザクション・ツリーは、疎結合のままになります。トランザクション・ブランチの数は、トランザクション内のドメイン数になります。これは、すべてのブランチが同じリソース・マネージャのインスタンスにアクセスしている場合も同じです。
ドメイン・ゲートウェイ・グループは、ドメイン間のトランザクションに対して異なるトランザクション・ブランチを生成するため、疎結合関係をインプリメントします。
ローカル要求とリモート要求を生成するサービス要求グラフの例
次の図は、ローカル・サービスに対する要求 (r0) およびリモート・サービスに対する 2 つの要求 (r2 および r3) を発行するクライアントを示す、サービス要求のグラフです。r0 は、ローカル・サービス (Svc0) に送信され、別のリモート・サービス要求 (r1) を生成します。r1 はリモート・サービス Rsvc1 に送信され、Rsvc1 は、ループ・バック・サービス要求 r4 をローカル・サービス Svc4 に送信します。Svc0 と Svc4 は、別々のグループ (G0 と G4) で実行されます。ドメイン・ゲートウェイは、ほかのグループ (GW) 内で実行され、リモート・サービス Rsvc1、Rsvc2、および Rsvc3 は別のドメイン (ドメイン B) で実行されます。
サービス要求グラフ
BEA eLink OSI TP と BEA Tuxedo Domains のトランザクション・ツリー 次の 2 つの図は、BEA eLink OSI TP のトランザクション・ツリーと、BEA Tuxedo Domains のトランザクション・ツリーを示します。これらの図では、ドメイン A とドメイン B が BEA Tuxedo システムのアプリケーションであることを想定しています。 BEA eLink OSI TP は、OSI TP プロトコルを使用しているため、疎結合です。このインスタンスのトランザクション・ツリーでは、ドメイン A (クライアントが開始したグローバル・トランザクションを調整) 内にグループ G0 が示されています。グループ G0 は、グループ GW を調整します。r1、r2、および r3 の 3 つの要求は、それぞれ別の OSI TP ダイアログにマッピングされ、したがって別の OSI TP のトランザクション・ブランチにマッピングされます。ただし、OSI TP は、XAP-TP の機能を使用して、一意な識別子 (T1) で OSI TP トランザクション全体を参照し、r1、r2、および r3 の 3 つの要求にも使用します。OSI TP トランザクション識別子を作成し、対応する OSI TP トランザクション・ツリーを構築するかどうかは、XAP-TP に依存します。一般的な Domains ソフトウェアでは、r1、r2、および r3 の 3 つの要求の T1 識別子へのマッピングが、必ず実行される唯一の処理です。 Domain B では、新しい BEA Tuxedo トランザクションには新しいトランザクション・ブランチをマッピングする、という OSI TP の規則が使用されます。したがって、OSI TP トランザクション・ブランチである r1、r2、および r3 は、3 つの異なる BEA Tuxedo トランザクション (T2、T3、および T4) にマッピングされます。グラフでは、Domain B のゲートウェイ・グループ GW が、グループ G1 での 3 つの BEA Tuxedo トランザクションを調整します。 ループ・バックのサービス要求 r4 は、トランザクション・ツリーに別のブランチを生成します。OSI TP は、この要求を識別子 T2 にマッピングしますが、XAP-TP は、トランザクション・ツリーに新しいブランチを生成します。r4 の場合は、B から A' のブランチです。生成されたブランチは、ドメイン A の新しいトランザクション・ブランチであるため、ゲートウェイは新しい BEA Tuxedo トランザクションに対する新しいマッピング T5 を生成します。トランザクション・グラフでは、ドメイン A のゲートウェイ・グループ GW が、グループ G4 を調整する様子を示します。 これらのマッピング関係により、OSI TP プロトコルの階層構造は強化されます。ただし、これらのマッピング関係は疎結合であるため、トランザクション内でデッドロックが発生する可能性が高まります。たとえば、グループ G1 が示す RM には、3 つの BEA Tuxedo トランザクションがアクセスします。 BEA eLink OSI TP 環境のトランザクション・ツリー
TDomain のインスタンスは、密結合関係を使用してドメインを統合する、つまり、2 つのドメイン間の処理で必要なトランザクション・ブランチの数を減らすことにより、このデッドロックを解決します。次の図は、この関係を表すトランザクション・ツリーを示しています。 TDomain 環境のトランザクション・ツリー
ここでも、ゲートウェイでは、BEA Tuxedo システムのトランザクションとネットワーク・トランザクションのマッピングを行わなければなりません。また、ドメイン間の階層構造も維持されていなければなりません。この図では、r1、r2、および r3 の 3 つの要求が、1 つの TDomain トランザクション・ブランチにマッピングされています。したがって、ドメイン B で生成される必要があるのは、1 つの BEA Tuxedo システムのトランザクションだけです。T2 は、このマッピングを表します。グラフでは、ドメイン B のゲートウェイ・グループ GW が、グループ G1 を調整する様子を示します。要求 r4 は、Domain B の識別子 T2 にマッピングされますが、TDomain はトランザクション・ツリーに新しいブランチを生成します。r4 の場合は、B から A' のブランチです。生成されたブランチは、ドメイン A の新しいトランザクション・ブランチであるため、ゲートウェイは新しい BEA Tuxedo トランザクションに対する新しいマッピング T3 を生成します。グラフでは、ドメイン A のゲートウェイ・グループ GW が、グループ G4 も調整する様子を示します。このマッピング関係により、ドメイン間通信の階層構造は強化されます。グループ G4 は、グループ G1 より先にコミットすることはできません。 Domains でのトランザクション管理のまとめ Domains でのトランザクション管理は、次のようにまとめることができます。
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|