4 Domainsの管理の概要
以下の項では、Oracle Tuxedo Domains環境を管理する方法について説明します。
4.1 Domainsの実行時管理コマンドを使用する
Domainsコンポーネントを既存のOracle Tuxedoアプリケーションと統合するには、ドメイン・ゲートウェイ・グループとゲートウェイ・サーバーのエントリをTUXCONFIG
ファイルに追加します。実行中のOracle TuxedoアプリケーションにDomains構成を追加するには、tmconfig(1)
またはtmadmin(1)
コマンドを使用します。tmadmin
を使用すると、ドメイン・ゲートウェイ・グループや個々のドメイン・ゲートウェイの掲示板で使用できる情報をリストすることもできます。
Domains環境を設定し、統合すると、Domainsコンポーネントに用意されている一連の管理ツールを使用して、Domains環境を動的に管理できます。たとえば、アプリケーションのどこからでもアクセスできるサービスをリスト化したり、そのリストを変更することができます。Domainsソフトウェアには、Oracle Tuxedoのプログラミング・インタフェース(ATMI)の機能に加え、拡張された機能が備わっているため、クライアントはドメイン内のあらゆるサービスを呼び出すことができます。この機能により、プログラマは、アプリケーション・コードを変更せずに、アプリケーションを拡張したり、分割できます。
次の図は、Domainsの管理サブシステムにおける管理コマンドと管理サーバーの関係を示しています。
図4-1 Domainsの実行時の管理

Oracle Tuxedo Domainsコンポーネントには、次の管理コマンドが用意されています。
-
dmadmin(1)
- 一般的な管理サービス用のコマンドです。管理者は、Oracle Tuxedoアプリケーションの実行中に、ドメイン・ゲートウェイ・グループを動的に設定、モニターおよび調整したり、Domainsの構成ファイル(BDMCONFIG
)を更新できます。このコマンドは、管理コマンドを変換したり、サービス・リクエストをDMADMIN
サービスに送信したりするフロントエンド・プロセスとして機能します。DMADMINサービスは、DMADM
サーバーにより通知される汎用管理サービスです。DMADMIN
サービスは、DMADM
サーバーに組み込まれている、検証、検索、または更新を行う機能を呼び出して、BDMCONFIG
ファイルを管理します。 -
DMADM(5)
- Domains管理サーバーです。Domainsの構成を更新するための管理プロセスを提供します。このサーバーは、dmadmin
コマンドに対するバックエンドとして機能します。ドメイン・ゲートウェイ・グループの登録サービスを提供します。この登録サービスは、GWADM
サーバーの初期化処理で要求されます。登録サービスは、リクエスト元のドメイン・ゲートウェイ・グループが要求する構成情報をダウンロードします。DMADM
サーバーは、登録済のドメイン・ゲートウェイ・グループのリストを管理し、構成ファイルが変更されると、変更内容をリスト内のドメイン・ゲートウェイ・グループに伝播します。 -
GWADM(5)
(ゲートウェイ管理サーバー) -DMADM
サーバーに登録され、対応するドメイン・ゲートウェイ・グループに使用される構成情報を取得します。GWADM
は、DMADM
からの問合せ、つまり、対応するドメイン・ゲートウェイ・グループの実行時オプションでの統計情報や変更に対する問合せを受け付けます。GWADM
サーバーは、"I-am-alive"メッセージを定期的にDMADM
サーバーに送信します。DMADM
サーバーから応答がない場合、GWADM
サーバーは再度登録を行います。このメカニズムにより、GWADM
サーバーは、そのグループのDomains構成に関する最新の情報を常に保持できます。 -
GWTDOMAIN(5)
- TDomainゲートウェイ・サーバーです。複数のOracle Tuxedoドメイン間で相互運用性を実現します。WebLogic Tuxedo Connector (WTC)ゲートウェイ(Oracle WebLogic Serverコンポーネント)と連係することで、Oracle Tuxedo TDomainゲートウェイはTuxedoドメインとWebLogic Serverアプリケーションの間でも相互運用性を実現できます。 -
BDMCONFIG
- Domains構成ファイルのバイナリ形式です。TUXCONFIG
ファイルおよびfactory_finder.ini
ファイル(CORBAのみ)と一緒に、Domains構成を作成するためにOracle Tuxedoソフトウェアで必要なすべての構成パラメータを格納します。
ノート:
TUXCONFIG
ファイルのSERVERS
セクションでGWADM
サーバーが定義されている場合に、CLOPT
パラメータを使用してドメイン・ゲートウェイ・グループを起動すると、ゲートウェイ・パラメータを指定することもできます。
親トピック: Domainsの管理の概要
4.2 管理インタフェースdmadmin(1)を使用する
dmadmin
は、DMADM
サーバーおよびGWADM
サーバーに対する管理インタフェースです。これらの2つのサーバー間の通信は、FMLの型付きバッファを使用して実行されます。管理者は、dmadmin
コマンドを使用して、次の作業を実行できます。
BDMCONFIG
ファイルに格納された情報と特定のOracle Tuxedoアプリケーションで実行している異なるドメイン・ゲートウェイ・グループの情報を対話形式で管理できます。- 統計情報やドメイン・ゲートウェイ・グループが収集したほかの情報を取得できます。
- ドメイン・ゲートウェイ・グループのパラメータを変更できます。
BDMCONFIG
ファイルに情報を追加したり、情報を更新できます。
ノート:
実行時にBDMCONFIG
ファイルから削除できるのは、アクティブなドメイン・ゲートウェイ・グループとは関係のない情報だけです。
親トピック: Domainsの管理の概要
4.3 Domains管理サーバーDMADM(5)を使用する
Domainsの管理サーバーであるDMADM(5)
は、Oracle Tuxedoに組み込まれているサーバーであり、次の機能を実行します:
BDMCONFIG
ファイルを実行時に管理します。BDMCONFIG
ファイルを管理します。- 登録済のドメイン・ゲートウェイ・グループをリストします。
- 実行時の構成の変更を、登録済のドメイン・ゲートウェイ・グループに伝播します。
DMADM
サーバーは、次の2つのサービスを通知します。
-
DMADMIN
。dmadmin
コマンドとGWADM
サーバーによって使用されます。 DMADM_
svrid
と呼ばれるサービス。srvid
は、サービス用の適切なサーバーIDです。登録済のGWADM
サーバーは、特定の管理機能(ドメイン・ゲートウェイ・グループの構成情報をリフレッシュしたり、GWADM
が登録されたままであることを通知する機能など)に対してDMADM_
svrid
を使用します。
DMADM
サーバーは、グループ内で実行しているサーバー(DMADMGRP
など)としてTUXCONFIG
ファイルのSERVERS
セクションで定義されている必要があります。このグループには、DMADM
サーバーのインスタンスが1つのみ必要です。
関連項目:
- 『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の
DMADM(5)
に関する項
親トピック: Domainsの管理の概要
4.4 ゲートウェイ管理サーバーGWADM(5)を使用する
ゲートウェイ管理サーバーGWADM(5)
は、Oracle Tuxedoに組み込まれているサーバーであり、ドメイン・ゲートウェイ・グループ用の管理機能を提供します。GWADM
サーバーの主な機能は、次のとおりです:
DMADM
サーバーからDomainsの構成情報を取得したり、dmadmin
からの問合せを受け付けます。GWADM
サーバーは、DMADM
サーバーに登録することにより、ドメイン・ゲートウェイ・グループの構成情報を取得します。次に、GWADM
サーバーは、この情報を共有メモリーに格納し、ゲートウェイでこの構成を利用できるようにします。- ドメイン・ゲートウェイ・グループの管理機能を提供します。たとえば、実行時の統計情報について
dmadmin
からの問合せを受け付けたり、ドメイン・ゲートウェイ・グループの実行時パラメータを変更します。 - ドメイン・ゲートウェイ・グループ用のトランザクション・ログ機能を提供します。
GWADM
サーバーは、共有メモリーに格納されている情報を読み込み、どのトランザクション・ログを記録する必要があるかを判断します。GWADM
サーバーは、起動時にログをスキャンして、トランザクションの回復が必要かどうかを調べます。回復が必要であれば、共有メモリー内のトランザクション情報を回復します。ゲートウェイ・サーバーは、共用メモリーの情報をスキャンして、対応するトランザクションをリカバリします。リカバリ手順は、ドメイン・ゲートウェイ・グループで受信される新規の入力リクエストや出力リクエストとは、非同期的に行われます。
GWADM
サーバーは、GWADM
サーバーが属するドメイン・ゲートウェイ・グループに関連付けられたローカル・ドメイン・アクセス・ポイントの名前(BDMCONFIG
ファイルのDM_LOCAL
セクションで指定)に基づいてサーバー名を通知します。dmadmin
コマンドは、このサービスを使用して、アクティブなすべてのドメイン・ゲートウェイ・グループまたは特定のドメイン・ゲートウェイ・グループから、情報を取り出します。
GWADM
サーバーは、TUXCONFIG
ファイルのSERVERS
セクションで定義しておく必要があります。グループに関連するゲートウェイが使用するMSSQ
の一部として指定することはできません。また、ドメイン・ゲートウェイ・グループ内で最初に起動されるサーバーでなければなりません。つまり、SEQUENCE
で番号が指定されているか、またはゲートウェイ・サーバーより先に定義されていなければなりません。
GWADM
サーバーにはDMADM
サーバーが必要です。具体的にはDMADM
サーバーを起動してから、GWADM
を起動する必要があります。
GWADM
サーバーは、ドメイン・ゲートウェイ・グループに必要な共有メモリーを作成し、DMADM
サーバーから受け取る情報を構成表内に設定しなければなりません。GWADM
サーバーはshmget
でIPC_PRIVATE
を使用し、掲示板のレジストリ・エントリにあるshmid
フィールドに返されたipckey
を格納します。ゲートウェイは、GWADM
レジストリ・エントリを取得し、shmid
フィールドをチェックすることにより、ipckey
を取得できます。
関連項目:
- 『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の
GWADM(5)
に関する項
親トピック: Domainsの管理の概要
4.5 ドメイン・ゲートウェイ・サーバーを使用する
ドメイン・ゲートウェイ・サーバーは、リモート・ドメイン・ゲートウェイ・サーバーへの接続を実現し、1つ以上のリモート・ゲートウェイと同時に通信できます。ゲートウェイは、Oracle Tuxedoアプリケーションにインポートされたサービスを通知し、アプリケーションによってエクスポートされたローカル・サービスへのアクセスを制御します。アプリケーションのエクスポートされたサービスとインポートされたサービスは、Domains構成ファイル(DMCONFIG
)で定義します。ドメイン・ゲートウェイ・グループを動的に構成、モニターおよび調整するには、dmadmin
を使用します。
4.5.1 ドメイン・ゲートウェイのパフォーマンスをチューニングする
Oracle Tuxedo 9.xでは、GWTDOMAINゲートウェイのパフォーマンスの向上を実現しつつ、ほかのタイプの/Domainゲートウェイとの互換性を保持しています。このため、パフォーマンスの大部分はスレッド対応プラットフォームに制限されます。また、プログラムを一部変更するだけで、ほかのタイプの/Domainゲートウェイも、拡張された共通ゲートウェイ・アーキテクチャでこの機能を利用できます。
複数のドメインにわたるアプリケーションのパフォーマンスは、様々な要因の影響を受けます。例:
- サービスの処理時間
- データベース・トランザクション
- メッセージ・バッファ・サイズ
- セキュリティ機能(リンク・レベル暗号化など)
- ネットワーク伝送速度
このため、ドメイン・ゲートウェイのパフォーマンスの向上を実感するには、アプリケーションで上記の要因を最小限に抑える必要があります。そうしないと、ゲートウェイのパフォーマンスはさほど向上しない場合があります。
次に、パフォーマンスに関する推奨事項を示します。
- 多くのクライアントが1つのリモート・サービスにリクエストを送信しています。この場合、メッセージのサイズを小さくします(数KB未満)。
- 多くのクライアントが異なるリモート・サービスにリクエストを送信している、またはロード・バランシングを使用してサービス・リクエストを分散させています。この場合、メッセージのサイズは大きくてもかまいません。
ノート:
前提条件として、サーバー側のサービス処理時間が短い必要があります。レスポンス時間は、ゲートウェイ処理時間とサービス処理時間の合計です。サービス処理時間が非常に長いと、ゲートウェイのパフォーマンスの向上が抑制されます。親トピック: ドメイン・ゲートウェイ・サーバーを使用する
4.6 Domains環境でのトランザクションの管理
アプリケーション・プログラマは、トランザクションでリモート・サービスの実行をリクエストすることができます。また、リモート・ドメインのユーザーが、トランザクションでローカル・サービスの実行をリクエストすることもできます。Domainsは、リモート・トランザクションをローカル・トランザクションにマッピングしたり、これらのトランザクションが正しく終了(コミットまたはロールバック)されるように調整する役割を果たします。
Oracle Tuxedoのシステム・アーキテクチャでは、トランザクション・マネージャ・サーバー(TMS
)という別個のプロセスにより、特定のグループにアクセスするトランザクション・ブランチのコミットやリカバリが調整されます。ただし、Domains環境で、受信したトランザクションのコミット操作を処理するには、ゲートウェイからTMS
サーバーに別途メッセージを送信する必要があります。Domainsのアーキテクチャを単純化し、送信メッセージの数を抑えるため、TMS
コードは、ゲートウェイ・コードと統合されています。これで、ドメイン・ゲートウェイは、Oracle Tuxedoシステムで使用されるトランザクション・プロトコルを処理できます。Oracle Tuxedoのトランザクション・プロトコルを使用するには、ドメイン・ゲートウェイ・グループでTMS
サービスが通知されている必要があります(この通知は、最初のゲートウェイの起動時に実行されます)。いったんTMS
サービスが通知されると、ドメイン・ゲートウェイ・グループ宛てのトランザクション・コントロール・メッセージは、すべてゲートウェイのキューに登録されます。
ドメイン・ゲートウェイ・グループは、TUXCONFIG
ファイルで定義されており、TMSNAME
、
、TMSCOUNT
OPENINFO
、CLOSEINFO
の各パラメータは指定されません。これらのパラメータは、XA対応のリソース・マネージャを使用するゲートウェイ・グループにのみ適用されるためです。ドメイン・ゲートウェイは、このリソース・マネージャを使用しません。
ドメインのコミット・プロトコルは厳密な階層構造になっています。トランザクション・ツリーを水平に構成することはできません。上位ドメインが認識するのは、すぐ下の下位ドメインだけであり、各ドメインがトランザクション・ツリー全体を把握しているわけではないためです。ツリーを水平に構成すると、トランザクションに参加しているすべてのドメインにルート・ドメインを完全に接続することも必要になります。
ドメイン・ゲートウェイには、トランザクションを管理するための4つの機能が用意されています。これらの機能については、以下の項を参照してください。
親トピック: Domainsの管理の概要
4.6.1 DomainsでTMS機能を使用する
Oracle TuxedoシステムのTMS
は、X/Open XA準拠のリソース・マネージャを使用するサーバー・グループと暗黙的に関連付けられた特別なサーバーです。TMS
サーバーは、分散型の2フェーズ・コミット・プロトコルに伴うアプリケーション・サーバーでの遅延を解消します。つまり、TMS
サーバーは、TMS
サービスに対して特殊なサービス・リクエストを発行することにより、トランザクションのコミットを調整します。このサービスは、すべてのTMS
サーバーで提供されます。
一方、Domains環境では、GWTDOMAIN
ゲートウェイはXA準拠のリソース・マネージャと関連付けられていません。X/Openのトランザクション処理ワーキング・グループ(TPWG
)は高度なXAインタフェースを提案しました。このインタフェースは、Oracle Tuxedoシステムでは使用されていません。というのは、ゲートウェイに必要な非同期性の高い非ブロック型のモデルにインタフェースが一致しないからです。ドメイン・ゲートウェイは、専用のTMS
サーバーは使用しませんが、トランザクション・マネージャ・サーバーと同等の機能、つまり、ドメイン間で実行されるトランザクションの2フェーズ・コミットを調整します。
ドメイン・ゲートウェイは、次のようにしてドメインをまたがるトランザクションを調整します。
- ドメイン・ゲートウェイは、
TMS
サービスを通知し、そのサービスに関連するすべての操作を行います。このサービスに送信されたメッセージは、適切なドメイン・ゲートウェイ・グループによって使用されるキューに登録され、ゲートウェイはグループに対応付けられたトランザクションを管理します。 - ゲートウェイは、ドメイン内の別のグループによって調整されるトランザクションの下位として位置付けることもできます。この場合、ゲートウェイは、他のリモート・ドメインで実行されるトランザクションよりも上位になります。リモート・ドメインによって調整されるトランザクションの下位として働く場合、ゲートウェイは、トランザクションがアクセスするローカル・ドメインのすべてのグループのためのコーディネータとして働きます。次の図は、下位とコーディネータの両方として機能しているゲートウェイを示しています。
図4-2 別のドメイン・ゲートウェイ・グループの下位ドメイン・ゲートウェイまたはコーディネータとしてのドメイン・ゲートウェイ
- このゲートウェイは、ドメイン内のトランザクションのコーディネータとして、特定のクライアントに対するトランザクションのコミットを管理します。次の図はこれを説明したものです。
図4-3 ドメイン・ゲートウェイによって管理されるクライアントのコミット
- ゲートウェイは、
AUTOTRAN
機能を使用して、転送サービスを使用する特定のクライアントまたはサーバーのためにトランザクションのコミットを管理します。この組合せが使用された場合には、転送チェーンの最後のサーバー(ドメイン・ゲートウェイ)がコミットを発行し、トランザクションのコーディネータになります。(ドメイン・ゲートウェイは、常に転送チェーンの最後のサーバーとして機能します。) - ゲートウェイは、
AUTOTRAN
機能で指定されたリモート・サービスに対してトランザクションを自動的に開始および終了します。この機能は、アプリケーション管理者がリモート・サービスとのネットワーク・コミュニケーションの信頼性を強化したいときに必要です。管理者がこの機能を指定するには、対応するリモート・サービス定義の中のパラメータAUTOTRAN
にY
を設定します。 - ゲートウェイは、Oracle Tuxedoシステムのトランザクション・プロトコルを、リモート・ドメインとの相互運用に使用されるネットワーク・トランザクション・プロトコルにマッピングします。実際のマッピング方法は、使用するドメイン・ゲートウェイのインスタンスによって決まります(TDomainおよびSNA)。
親トピック: Domains環境でのトランザクションの管理
4.6.2 トランザクションでGTRIDマッピングを使用する
Oracle Tuxedoシステムのトランザクション・ツリーは、2レベルで構成されています。ルートには、グローバル・トランザクションを調整するドメイン・ゲートウェイ・グループがあり、トランザクションはブランチに含まれます。各ゲートウェイ・グループは、ほかのグループからは独立して、グローバル・トランザクションの一部を実行します。したがって、各グループは暗黙的にトランザクション・ブランチを定義します。Oracle Tuxedoシステムは、TMS
サーバーを使用して、各ブランチの完了を確認しながら、グローバル・トランザクションの完了を調整します。
GTRID
は、グローバル・トランザクション識別子です。GTRID
マッピングでは、ドメインの境界をまたぐトランザクション・ツリーの構築方法を定義します。GTRID
を指定するには、Oracle Tuxedo構成ファイルのRESOURCES
セクションのMAXGTT
パラメータを使用します。
- 密結合関係と疎結合関係の定義
- Domainsをまたがるグローバル・トランザクション
- ローカル・リクエストとリモート・リクエストを生成するサービス・リクエスト・グラフの例
- Oracle Tuxedo Domainsのトランザクション・ツリー
- Domainsでのトランザクション管理のサマリー
親トピック: Domains環境でのトランザクションの管理
4.6.2.1 密結合関係と疎結合関係の定義
X/Open DTPモデルのトランザクション・マネージャ・サーバーは、リソース・マネージャ(RM)との関係を表すトランザクション・ツリーを構築できます。関係は密結合または疎結合で定義し、XAインタフェースで使用されるトランザクション識別子(XIDs
)が使用されます。
「密結合関係」では、1つのグローバル・トランザクションに参加するすべてのプロセスで同じトランザクション識別子(XID)が使用され、同じRMへのアクセスが行われます。この関係が確立されていると、プロセス間のデータ共有性を最大化できます。つまり、XA準拠のRMでは、同じ
XID
のプロセスによって使用されるリソースがロックを共有すると見なされます。Oracle Tuxedoシステムでは、「グループ」の概念に基づいて密結合関係を実現します。つまり、指定されたグローバル・トランザクションの代わりに、グループがすべての作業を行い、それらの作業は同じトランザクション・ブランチに設定されます。グループが行ったすべてのプロセスには、同じXID
が指定されます。
疎結合関係のTMS
は、グローバル・トランザクションに参加する各作業に対して、トランザクション・ブランチを生成します。RMは、各トランザクション・ブランチを別々に処理します。トランザクション・ブランチ間では、データやロックは共有されません。トランザクション・ブランチ間でデッドロックが発生すると、グローバル・トランザクションがロールバックされます。Oracle Tuxedoアプリケーションでは、1つのグローバル・トランザクションに様々なグループが参加している場合、グループごとに別のトランザクション・ブランチが定義され、疎結合関係が確立されます。
親トピック: トランザクションでGTRIDマッピングを使用する
4.6.2.2 Domainsをまたがるグローバル・トランザクション
単独のOracle Tuxedoアプリケーション内のグローバル・トランザクションと、ドメインをまたがるグローバル・トランザクションとでは、いくつかの違いがあります。最大の相違点は、Domainsのフレームワークでは、トランザクション・ツリーの構成を2レベルに下げることができないことです。これには、次の2つの理由があります。
- トランザクションに、ルート・ドメイン(トランザクションを制御するドメイン)で認識できる数以上のドメインが含まれる場合があるため、トランザクション・ツリーの構造が完全に認識されません。
- トランザクション・ツリーが2レベルで構成されている場合、ルート・ドメインは、トランザクションのすべてのドメインに直接接続されていなければなりません。
つまり、ドメインをまたがるコミット・プロトコルは、階層型でなければなりません。ループバックされたサービス・リクエストも、トランザクション・ツリーでは新しいブランチとして定義されます。
ノート:
ループバック・リクエストとは、別のドメインに送信された後で、送信元のドメインに返される要求です。たとえば、ドメインAがドメインBのサービスを要求したとします。ドメインBのサービスは、ドメインAの別のサービスを要求します。トランザクション・ツリーには、ネットワーク・レベルで2つのブランチがあります。つまり、ドメインAからドメインBへの要求を示すブランチb1と、ドメインBからドメインAへの要求を示すブランチb2です。ドメインAは、ドメインBからコミットの指示を受けるまで、ブランチb2の作業をコミットすることはできません。ドメインをまたがるグローバル・トランザクションのトランザクション・ツリー構造は、対応するドメイン・ゲートウェイのインスタンスが使用する分散トランザクション処理プロトコルにも依存します。
しかし、この特徴は、ルート・ドメインから下位ドメインに送信されるサービス・リクエストにのみ適用されます。逆方向で送信されるサービス・リクエストには適用されません。
TDomainのインスタンスは、密結合関係を実現することにより、GTRID
のマッピングを最適化しようとします。TDomainでは、同じグローバル・トランザクションから発行された複数のサービス・リクエストは、同じネットワーク・トランザクション・ブランチにマッピングされます。したがって、受信したサービス・リクエストは、1つのOracle Tuxedoトランザクションにマッピングされます。ただし、ドメイン間通信の階層構造とドメイン間の関係を示すトランザクション・ツリーは保持される必要があります。
TDomainによる最適化処理は、単一のドメインに対してのみ適用されます。トランザクションに複数のドメインが関係する場合、ネットワーク・トランザクション・ツリーには、ドメイン間の通信ごとに少なくとも1つのブランチが必要です。したがって、ドメインにまたがるネットワーク・トランザクション・ツリーは、疎結合のままになります。トランザクション・ブランチの数は、トランザクション内のドメイン数になります。これは、すべてのブランチが同じリソース・マネージャのインスタンスにアクセスしている場合も同じです。
ドメイン・ゲートウェイ・グループは、ドメイン間のトランザクションに対して異なるトランザクション・ブランチを生成するため、疎結合関係を実装します。
親トピック: トランザクションでGTRIDマッピングを使用する
4.6.2.3 ローカル・リクエストとリモート・リクエストを生成するサービス・リクエスト・グラフの例
次の図は、3つのサービス・リクエスト(1つのローカル・リクエスト(r0
)と2つのリモート・リクエスト(r2
およびr3
))を生成するクライアントのサービス・リクエストのグラフを示しています。r0
は、ローカル・サービス(Svc0
)に送信され、別のリモート・サービス・リクエスト(r1
)を生成します。リクエストr1
はリモート・サービスRsvc1
に送信され、Rsvc1はループバック・サービス・リクエストr4
をローカル・サービスSvc4
に発行します。Svc0
とSvc4
は、別々のグループ(G0
とG4
)で実行されます。ドメイン・ゲートウェイは、他のグループ(GW
)内で実行され、リモート・サービスRsvc1
、Rsvc2
およびRsvc3
は別のドメイン(ドメインB)で実行されます。
図4-4 サービス・リクエストのグラフ

親トピック: トランザクションでGTRIDマッピングを使用する
4.6.2.4 Oracle Tuxedo Domainsのトランザクション・ツリー
次の図は、Oracle Tuxedoドメインのトランザクション・ツリーを示しています。これらの図では、ドメインAとドメインBがOracle Tuxedoシステムのアプリケーションであることを想定しています。
TDomainのインスタンスは、密結合関係を使用してドメインを統合する、つまり、2つのドメイン間の処理で必要なトランザクション・ブランチの数を減らすことにより、このデッドロックを解決します。次の図は、対応するトランザクション・ツリーを示しています。
図4-5 TDomain環境のトランザクション・ツリー

ゲートウェイはOracle Tuxedoシステム・トランザクションとネットワーク・トランザクション間で継続してマッピングを実行する必要があり、ドメイン間通信の階層構造は厳密に強化される必要があることに注意します。この図では、r1
、r2
、およびr3
の3つのリクエストが、1つのTDomainトランザクション・ブランチにマッピングされています。したがって、ドメインBでは1つのOracle Tuxedoシステム・トランザクションが生成される必要があります。T2
はこのマッピングを表し、グラフではグループG1
を調整するドメインBのドメイン・ゲートウェイ・グループGW
を示します。リクエストr4
は、Domain Bの識別子T2
にマッピングされますが、TDOMAINはトランザクション・ツリーに新しいブランチを生成します。r4
の場合は、BからA'のブランチです。生成されたブランチは、ドメインAの新しいトランザクション・ブランチであるため、ゲートウェイは新しいOracle Tuxedoトランザクションに対する新しいマッピングT3
を生成します。グラフでは、ドメインAのドメイン・ゲートウェイ・グループGW
が、グループG4
も調整する様子を示します。このマッピング関係により、ドメイン間通信の階層構造は強化されます。グループG4
は、グループG1
より先にコミットすることはできません。
親トピック: トランザクションでGTRIDマッピングを使用する
4.6.2.5 Domainsでのトランザクション管理のサマリー
Domainsでのトランザクション管理は、次のようにまとめることができます。
- ゲートウェイは、Oracle Tuxedoシステムのトランザクションからネットワーク・トランザクションへのマッピングを実現します。新しいマッピングは、Oracle Tuxedoシステムのトランザクションごと、および着信したネットワーク・トランザクション・ブランチごとに作成されます。
- ドメイン・ゲートウェイの各インスタンス(TDomainおよびSNA)は、個々のネットワーク・トランザクション・ツリーの表現を扱います。すべてのインスタンスでは、ドメイン間の通信の階層性が認められます。
親トピック: トランザクションでGTRIDマッピングを使用する
4.6.3 ログ機能によるトランザクションの追跡
ログ機能は、2フェーズ・コミット・プロトコルの進行をトラッキングするために使用します。ログの情報から、ネットワーク障害やマシンのクラッシュが発生したときに、トランザクションが完了したかどうかを確認できます。
ドメインをまたがるトランザクションが確実に処理されるようにするため、ドメイン・ゲートウェイでは、ローカル識別子とリモート識別子のマッピングが記録されます。このマッピング情報に加え、Domainsのトランザクション管理機能により、異なるコミット・プロトコル・フェーズで決定された処理と、トランザクションに関連するリモート・ドメインの情報が記録されます。blob (バイナリ・ラージ・オブジェクト)と呼ばれるこの情報は、コミット情報と同じログ・レコードに記録され、リカバリを行うときに使用されます。
Domainsのログ・レコードの構造は、Oracle TuxedoシステムのTLOG
の構造とは異なります。TLOG
レコードのサイズは決まっており、単一のページに格納されています。一方、Domainsのログ・レコードのサイズは可変であり、レコードの大きさによっては、複数のページが必要な場合もあります。Domainsのログ・メカニズムであるDMTLOG
では、様々なサイズのログ・レコードを格納できます。
TMS
がドメイン・ゲートウェイ・グループより上位の場合は、コミットの調整のためにOracle TuxedoのTLOG
が必要です。
ログは、GWADM
管理サーバーによって記録されます。ログへの書込みは、GWTDOMAIN
プロセスによってリクエストされますが、実際の書込みは、GWADM
プロセスによって実行されます。
各ドメイン・ゲートウェイ・グループには、DMTLOG
というログ・ファイルを作成する必要があります。DMTLOG
ファイルは、DMCONFIG
ファイルのDM_LOCAL
セクションで定義されます。DMTLOG
ファイルを作成するには、DMTLOGDEV
パラメータにエントリを追加します。
DMTLOGDEV=string
string
はログ・ファイルの名前です。さらに、次の2つのオプション・パラメータのどちらか、または両方を設定できます。
-
DMTLOGNAME=
identifier
-
DMTLOGSIZE=
numeric
管理者は、実行時管理ユーティリティ(dmadmin
)を使用してDMTLOG
を作成することもできます。
ドメイン・ゲートウェイ・グループの起動時に、DMTLOG
が作成されていないと、ゲートウェイ・サーバーは、BDMCONFIG
ファイルの情報に基づき、ログを自動的に作成します。
BDMCONFIG
ファイルでログ・デバイスが指定されないかぎり、ドメイン・ゲートウェイ・グループは、リクエストをトランザクション・モードで実行できず、ドメイン・ゲートウェイ・グループはTMS
サービスを提供できません。
コミット・プロトコルを調整するため、ドメイン・ゲートウェイでは、次の2つのログ・レコードが必要です。
- レディ・レコード - トランザクション・ツリーでリーフまたは中間マシンとして機能するファイルです。ゲートウェイによって作成されます。このファイルには、トランザクションに関連する上位および下位のリモート・ドメインについての情報が記録されます。レディ・レコードは、レコードを記録するドメイン・ゲートウェイ・グループの下位のものがすべて準備できたことを示します。
- コミット・レコード - コミット・レコードは、トランザクションがコミットされたことを記録します。ドメイン・ゲートウェイは、特定のトランザクション・ツリーのコーディネータとして、コミット・レコードを作成します。
トランザクションがすべてのマシンでコミットされると、そのトランザクションのログは削除されます。
ヒューリスティックなログ・レコードは、管理者によって明示的に削除されないかぎり、削除されません。この特性は、クラッシュ時のリカバリ処理で正しい情報を取得し、管理者に対して診断情報を提供するために必要です。
管理者は、forgettran
コマンド(tmadmin(1)で実行)を使用して、不要になったヒューリスティック・レコードを削除することができます。
ノート:
- 詳細は、『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の
DMCONFIG(5)
に関する項を参照してください - 詳細は、『Oracle Tuxedoコマンド・リファレンス』の
dmadmin(1)
、tmadmin(1)
およびtmadmin(1)
に関する項を参照してください。
親トピック: Domains環境でのトランザクションの管理
4.6.4 失敗したトランザクションのリカバリ
ドメイン・ゲートウェイ・グループが起動すると、ゲートウェイ・サーバーは、DMTLOG
を自動的にウォームスタートします。ウォームスタートでは、ログがスキャンされ、未完了のトランザクションがあるかどうかがチェックされます。未完了のトランザクションが見つかると、そのトランザクションを処理するアクションが実行されます。
ドメイン・ゲートウェイ・グループがローカルTMS
の下位であり、ヒューリスティックな決定が行われた場合、TMS
は、最終的に決定された処理を示すTMS_STATUS
メッセージを生成します。
- ゲートウェイが失敗した場合は、再起動後にゲートウェイ自体がクリーンアップされます(ホット・スタート)。ゲートウェイは、関連する未処理のトランザクションをすべてロールバックします。
- 第1フェーズのコミットが完了していない場合に通信回線エラーが発生すると、ゲートウェイは、その接続に関連するトランザクションをロールバックします。
親トピック: Domains環境でのトランザクションの管理