|
以下の節では、Oracle Tuxedo Domains 環境を管理する方法について説明します。
Domains コンポーネントを既存の Oracle Tuxedo アプリケーションと統合するには、ドメイン ゲートウェイ グループとゲートウェイ サーバのエントリを TUXCONFIG
ファイルに追加します。実行中の Oracle Tuxedo アプリケーションに Domains コンフィグレーションを追加するには、tmconfig(1)
または tmadmin(1)
コマンドを使用します。tmadmin
を使用すると、ドメイン ゲートウェイ グループや個々のドメイン ゲートウェイの掲示板で使用できる情報をリストすることもできます。
Domains 環境を設定し、統合すると、Domains コンポーネントに用意されている一連の管理ツールを使用して、Domains 環境を動的に管理できます。たとえば、アプリケーションのどこからでもアクセスできるサービスをリスト化したり、そのリストを変更することができます。Domains ソフトウェアには、Oracle Tuxedo のプログラミング インタフェース (ATMI) の機能に加え、拡張された機能が備わっているため、クライアントはドメイン内のあらゆるサービスを呼び出すことができます。この機能により、プログラマは、アプリケーション コードを変更せずに、アプリケーションを拡張したり、分割できます。
次の図は、Domains の管理サブシステムにおける管理コマンドと管理サーバの関係を示します。
Oracle Tuxedo Domains コンポーネントには、次の管理コマンドが用意されています。
BDMCONFIG
) を更新できます。このコマンドは、管理コマンドを変換したり、サービス要求を DMADMIN
サービスに送信したりするフロントエンド プロセッサとして機能します。DMADMIN サービスは、DMADM
サーバにより宣言される汎用管理サービスです。DMADMIN
サービスは、DMADM
サーバに組み込まれている、検証、検索、または更新を行う機能を呼び出して、BDMCONFIG
ファイルを管理します。dmadmin
コマンドに対するバックエンドとして機能し、ドメイン ゲートウェイ グループの登録サービスを提供します。この登録サービスは、GWADM
サーバの初期化処理で要求されます。登録サービスは、要求元のドメイン ゲートウェイ グループが要求するコンフィグレーション情報をダウンロードします。DMADM
サーバは、登録済みのドメイン ゲートウェイ グループのリストを管理し、コンフィグレーション ファイルが変更されると、変更内容をリスト内のドメイン ゲートウェイ グループに伝播します。DMADM
サーバに登録され、対応するドメイン ゲートウェイ グループに使用されるコンフィグレーション情報を取得します。GWADM
は、DMADM
からのクエリ、つまり、対応するドメイン ゲートウェイ グループの実行時オプションでの統計情報や変更に対するクエリを受け付けます。GWADM
サーバは、「I-am-alive」メッセージを定期的に DMADM
サーバに送信します。DMADM
サーバから応答が返されない場合、GWADM
サーバは再度登録を行います。このメカニズムにより、GWADM
サーバは、そのグループの Domains コンフィグレーションに関する最新の情報を常に保持できます。注意 : | GWTDOMAIN 以外のドメイン ゲートウェイ タイプについては、http://download.oracle.com/docs/cd/E13161_01/tuxedo/tux100/interm/mainfrm.html を参照してください。 |
BDMCONFIG
- Domains コンフィグレーション ファイルのバイナリ形式です。TUXCONFIG
ファイルおよび factory_finder.ini
ファイル (CORBA のみ) と一緒に、Domains コンフィグレーションを作成するために Oracle Tuxedo ソフトウェアで必要なすべてのコンフィグレーション パラメータを格納します。注意 : | TUXCONFIG ファイルの SERVERS セクションで GWADM サーバが定義されている場合に、CLOPT パラメータを使用してドメイン ゲートウェイ グループを起動すると、ゲートウェイ パラメータを指定することもできます。 |
dmadmin
は、DMADM
サーバ用の GWADM
サーバへの管理インタフェースです。これらの 2 つのサーバ間の通信は、FML の型付きバッファを使用して実行されます。管理者は、dmadmin
コマンドを使用して、次の作業を実行できます。
注意 : | 実行時に BDMCONFIG ファイルから削除できるのは、アクティブなドメイン ゲートウェイ グループとは関係のない情報だけです。 |
Domains の管理サーバである DMADM(5) は、Oracle Tuxedo に組み込まれているサーバであり、以下の機能を実行します。
DMADM
サーバは、グループ内で実行しているサーバ (DMADMGRP
など) として TUXCONFIG
ファイルの SERVERS
セクションで定義されている必要があります。このグループには、DMADM
サーバのインスタンスが 1 つのみ必要です。
ゲートウェイ管理サーバ 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
を取得できます。
ドメイン ゲートウェイ サーバは、リモート ドメイン ゲートウェイ サーバへの接続を実現し、1 つ以上のリモート ゲートウェイと同時に通信することができます。ゲートウェイは、Oracle Tuxedo アプリケーションにインポートされたサービスを宣言し、アプリケーションによってエクスポートされたローカル サービスへのアクセスを制御します。アプリケーションのエクスポートされたサービスとインポートされたサービスは、Domains コンフィグレーション ファイル (DMCONFIG
) で定義します。ドメイン ゲートウェイ グループを動的にコンフィグレーション、モニタ、および調整するには、dmadmin
を使用します。
Oracle Tuxedo 9.x では、GWTDOMAIN ゲートウェイのパフォーマンスの向上を実現しつつ、ほかのタイプのドメイン ゲートウェイとの互換性を保持しています。このため、パフォーマンスの大部分はスレッド対応プラットフォームに制限されます。また、プログラムを一部変更するだけで、ほかのタイプのドメイン ゲートウェイも、拡張された共通ゲートウェイ アーキテクチャでこの機能を利用できます。
複数のドメインにわたるアプリケーションのパフォーマンスは、さまざまな要因の影響を受けます。たとえば、以下のような要因です。
このため、ドメイン ゲートウェイのパフォーマンスの向上を実感するには、アプリケーションで上記の要因を最小限に抑える必要があります。そのようにしない場合、ゲートウェイのパフォーマンスはさほど向上しない場合があります。
注意 : | 前提要件として、サーバサイドのサービス処理時間が短くなくてはなりません。応答時間は、ゲートウェイ処理時間とサービス処理時間の合計です。サービス処理時間が非常に長いと、ゲートウェイのパフォーマンスの向上が抑制されます。 |
アプリケーション プログラマは、トランザクションでリモート サービスの実行を要求することができます。また、リモート ドメインのユーザが、トランザクションでローカル サービスの実行を要求することもできます。Domains は、リモート トランザクションをローカル トランザクションにマッピングしたり、これらのトランザクションが正しく終了 (コミットまたはロールバック) されるように調整する役割を果たします。
Oracle Tuxedo のシステム アーキテクチャでは、トランザクション マネージャ サーバ (TMS
: Transaction Manager Server) という別個のプロセスにより、特定のグループにアクセスするトランザクション ブランチのコミットや回復が調整されます。ただし、Domains 環境で、受信したトランザクションのコミット操作を処理するには、ゲートウェイから TMS
サーバに別途メッセージを送信しなければなりません。Domains のアーキテクチャを単純化し、送信メッセージの数を抑えるため、TMS
コードは、ゲートウェイ コードと統合されています。これで、ドメイン ゲートウェイは、Oracle Tuxedo システムで使用されるトランザクション プロトコルを処理できます。Oracle Tuxedo のトランザクション プロトコルを使用するには、ドメイン ゲートウェイ グループで TMS
サービスが宣言されていなければなりません。この宣言は、最初のゲートウェイの起動時に実行されます。いったん TMS
サービスが宣言されると、ドメイン ゲートウェイ グループ宛てのトランザクション コントロール メッセージは、すべてゲートウェイのキューに登録されます。
ドメイン ゲートウェイ グループは、TUXCONFIG
ファイルで定義されており、TMSNAME
、TMSCOUNT
、OPENINFO
、CLOSEINFO
の 4 つのパラメータは指定されません。これらのパラメータは、XA 対応のリソース マネージャを使用するゲートウェイ グループにのみ適用されるためです。ドメイン ゲートウェイは、このリソース マネージャを使用しません。
ドメインのコミット プロトコルは厳密な階層構造になっています。トランザクション ツリーを水平に構成することはできません。上位ドメインが認識するのは、すぐ下の下位ドメインだけであり、各ドメインがトランザクション ツリー全体を把握しているわけではないためです。ツリーを水平に構成すると、トランザクションに参加しているすべてのドメインにルート ドメインを完全に接続することも必要になります。
ドメイン ゲートウェイには、トランザクションを管理するための 4 つの機能が用意されています。これらの機能については、以下の節を参照してください。
Oracle Tuxedo システムの TMS
は、X/Open XA 準拠のリソース マネージャを使用するサーバ グループと暗黙的に関連付けられた特別なサーバです。TMS
サーバは、分散型の 2 フェーズ コミット プロトコルに伴うアプリケーション サーバでの遅延を解消します。つまり、TMS
サーバは、TMS
サービスに対して特殊なサービス要求を発行することにより、トランザクションのコミットを調整します。このサービスは、すべての TMS
サーバで提供されます。
一方、Domains 環境では、GWTDOMAIN
ゲートウェイは XA 準拠のリソース マネージャと関連付けられていません。X/Open のトランザクション処理委員会 (TPWG
: Transaction Processing Working Group) は、高度な XA インタフェースを提案しましたが、このインタフェースは、非同期性が高く、非ブロッキング モデル型のゲートウェイには不適切なため、Oracle Tuxedo システムでは使用されていません。ドメイン ゲートウェイは、専用の TMS
サーバは使用しませんが、トランザクション マネージャ サーバと同等の機能、つまり、ドメイン間で実行されるトランザクションの 2 フェーズ コミットを調整します。
ドメイン ゲートウェイは、次のようにしてドメインをまたがるトランザクションを調整します。
TMS
サービスを宣言し、そのサービスに関連するすべての操作を行います。このサービスに送信されたメッセージは、適切なドメイン ゲートウェイ グループによって使用されるキューに登録され、ゲートウェイはグループに対応付けられたトランザクションを管理します。AUTOTRAN
機能を使用して、転送サービスを使用する特定のクライアントまたはサーバのためにトランザクションのコミットを管理します。この組み合わせが使用された場合には、転送チェーンの最後のサーバ (ドメイン ゲートウェイ) がコミットを発行し、トランザクションのコーディネータになります。(ドメイン ゲートウェイは、常に転送チェーンの最後のサーバとして機能します。)AUTOTRAN
機能で指定されたリモート サービスに対してトランザクションを自動的に開始および終了します。この機能は、アプリケーション管理者がリモート サービスとのネットワーク コミュニケーションの信頼性を強化したいときに必要です。管理者がこの機能を指定するには、対応するリモート サービス定義の中のパラメータ AUTOTRAN
に Y
を設定します。
詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「DMCONFIG(5)」の DM_IMPORT
セクションを参照してください。
Oracle Tuxedo システムのトランザクション ツリーは、2 レベルで構成されています。ルートには、グローバル トランザクションを調整するドメイン ゲートウェイ グループがあり、トランザクションはブランチに含まれます。各ゲートウェイ グループは、ほかのグループからは独立して、グローバル トランザクションの一部を実行します。したがって、各グループは、暗黙的にトランザクション ブランチを定義します。Oracle Tuxedo システムは、TMS
サーバを使用して、各ブランチの完了を確認しながら、グローバル トランザクションの完了を調整します。
GTRID
は、グローバル トランザクションの識別子です。GTRID
マッピングでは、ドメインの境界をまたぐトランザクション ツリーの構築方法を定義します。GTRID
を指定するには、Oracle Tuxedo コンフィグレーション ファイルの RESOURCES
セクションの MAXGTT
パラメータを使用します。
X/Open DTP モデルのトランザクション マネージャ サーバ (TMS) は、リソース マネージャ (RM) との関係を表すトランザクション ツリーを構築できます。関係は「密結合」または「疎結合」で定義し、XA インタフェースで使用されるトランザクション識別子 (XID
) が使用されます。
「密結合関係」では、1 つのグローバル トランザクションに参加するすべてのプロセスで同じトランザクション識別子 (XID
) が使用され、同じ RM へのアクセスが行われます。この関係が確立されていると、プロセス間のデータ共有性を最大化できます。つまり、XA 準拠の RM では、同じ XID
のプロセスによって使用されるリソースがロックを共有すると見なされます。Oracle Tuxedo システムでは、「グループ」の概念に基づいて密結合関係を実現します。つまり、指定されたグローバル トランザクションの代わりに、グループがすべての作業を行い、それらの作業は同じトランザクション ブランチに設定されます。グループが行ったすべてのプロセスには、同じ XID
が指定されます。
「疎結合関係」の TMS
は、グローバル トランザクションに参加する各作業に対して、トランザクション ブランチを生成します。RM は、各トランザクション ブランチを別々に処理します。トランザクション ブランチ間では、データやロックは共有されません。トランザクション ブランチ間でデッドロックが発生すると、グローバル トランザクションがロールバックされます。Oracle Tuxedo アプリケーションでは、1 つのグローバル トランザクションにさまざまなグループが参加している場合、グループごとに別のトランザクション ブランチが定義され、疎結合関係が確立されます。
単独の Oracle Tuxedo アプリケーション内のグローバル トランザクションと、ドメインをまたがるグローバル トランザクションとでは、いくつかの違いがあります。最大の相違点は、Domains のフレームワークでは、トランザクション ツリーの構成を 2 レベルに下げることができないことです。これには、次の 2 つの理由があります。
つまり、ドメインをまたがるコミット プロトコルは、階層型でなければなりません。ループバックされたサービス要求も、トランザクション ツリーでは新しいブランチとして定義されます。
注意 : | ループバック要求とは、別のドメインに送信された後で、送信元のドメインに返される要求です。たとえば、ドメイン A がドメイン B のサービスを要求したとします。ドメイン B のサービスは、ドメイン A の別のサービスを要求します。トランザクション ツリーには、ネットワーク レベルで 2 つのブランチがあります。つまり、ドメイン A からドメイン B への要求を示すブランチ b1 と、ドメイン B からドメイン A への要求を示すブランチ b2 です。ドメイン A は、ドメイン B からコミットの指示を受けるまで、ブランチ b2 の作業をコミットすることはできません。 |
ドメインをまたがるグローバル トランザクションのトランザクション ツリー構造は、対応するドメイン ゲートウェイのインスタンスが使用する分散トランザクション処理プロトコルにも依存します。たとえば、OSI TP プロトコルのダイアログ (OSI TP でのサービス要求) は、それぞれ別のトランザクション ブランチに関連付けられています。Oracle Tuxedo システムでは、OSI TP インスタンスがサービス要求でダイアログを使用するため、各サービス要求は別のトランザクション ブランチにマッピングされます。XAP-TP インタフェースは、このマッピングを隠し、ユーザ定義の識別子を使用して OSI TP サブツリー全体を参照するようなメカニズムを提供します (Oracle Tuxedo の実装では、この識別子は GTRID
になります)。GTRID
は、トランザクション ツリーの構築方法を XAP-TP に指示します。つまり、指定された OSI TP トランザクションに含めるダイアログを指定します。したがって、Oracle Tuxedo からは、OSI TP サブツリー全体が 1 つのトランザクション ブランチとして管理されているように見えます。
しかし、この特徴は、ルート ドメインから下位ドメインに送信されるサービス要求にのみ適用されます。逆方向で送信されるサービス要求には適用されません。OSI TP のインスタンスは、続いて疎結合関係をインプリメントします。受信したサービス要求は、新しい Oracle Tuxedo グローバル トランザクションにマッピングされます。
TDomain のインスタンスは、密結合関係を実現することにより、GTRID
のマッピングを最適化しようとします。TDomain では、同じグローバル トランザクションから発行された複数のサービス要求は、同じネットワーク トランザクション ブランチにマッピングされます。したがって、受信したサービス要求は、1 つの Oracle Tuxedo トランザクションにマッピングされます。ただし、ドメイン間通信の階層構造とドメイン間の関係を示すトランザクション ツリーは保持される必要があります。
TDomain による最適化処理は、単一のドメインに対してのみ適用されます。トランザクションに複数のドメインが関係する場合、ネットワーク トランザクション ツリーには、ドメイン間の通信ごとに少なくとも 1 つのブランチが必要です。したがって、ドメインにまたがるネットワーク トランザクション ツリーは、疎結合のままになります。トランザクション ブランチの数は、トランザクション内のドメイン数になります。これは、すべてのブランチが同じリソース マネージャのインスタンスにアクセスしている場合も同じです。
ドメイン ゲートウェイ グループは、ドメイン間のトランザクションに対して異なるトランザクション ブランチを生成するため、疎結合関係をインプリメントします。
次の図に、3 つのサービス要求 (1 つのローカル要求 (r0
) と 2 つのリモート要求 (r2
および r3
)) を生成するクライアントのサービス要求のグラフを示します。r0
は、ローカル サービス (Svc0
) に送信され、別のリモート サービス要求 (r1
) を生成します。r1
はリモート サービス Rsvc1
に送信され、Rsvc1 は、ループバック サービス要求 r4
をローカル サービス Svc4
に送信します。Svc0
と Svc4
は、別々のグループ (G0
と G4
) で実行されます。ドメイン ゲートウェイは、ほかのグループ (GW
) 内で実行され、リモート サービス Rsvc1
、Rsvc2
、および Rsvc3
は別のドメイン (ドメイン B) で実行されます。
次の 2 つの図は、Oracle eLink OSI TP のトランザクション ツリーと、Oracle Tuxedo ドメインのトランザクション ツリーを示します。これらの図では、ドメイン A とドメイン B が Oracle Tuxedo システムのアプリケーションであることを想定しています。
Oracle eLink OSI TP は、OSI TP プロトコルを使用しているため、疎結合です。このインスタンスのトランザクション ツリーでは、ドメイン A (クライアントが開始したグローバル トランザクションを調整) 内にグループ G0 が示されています。グループ G0
は、グループ GW
を調整します。r1
、r2
、および r3
の 3 つの要求は、それぞれ別の OSI TP ダイアログにマッピングされ、次に 1 つの 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 では、新しい Oracle Tuxedo トランザクションには新しいトランザクション ブランチをマッピングする、という OSI TP の規則が使用されます。したがって、OSI TP トランザクション ブランチである r1
、r2
、および r3
は、3 つの異なる Oracle Tuxedo トランザクション (T2
、T3
、および T4
) にマッピングされます。グラフでは、Domain B のドメイン ゲートウェイ グループ GW
が、グループ G1
での 3 つの Oracle Tuxedo トランザクションを調整します。
ループバックのサービス要求 r4
は、トランザクション ツリーに別のブランチを生成します。OSI TP は、この要求を識別子 T2
にマッピングしますが、XAP-TP は、トランザクション ツリーに新しいブランチを生成します。r4
の場合は、B から A' のブランチです。生成されたブランチは、ドメイン A の新しいトランザクション ブランチであるため、ゲートウェイは新しい Oracle Tuxedo トランザクションに対する新しいマッピング T5
を生成します。トランザクション グラフでは、ドメイン A のドメイン ゲートウェイ グループ GW が、グループ G4
を調整する様子を示します。
これらのマッピング関係により、OSI TP プロトコルの階層構造は強化されます。ただし、これらのマッピング関係は疎結合であるため、トランザクション内でデッドロックが発生する可能性が高まります。たとえば、グループ G1
が示す RM には、3 つの Oracle Tuxedo トランザクションがアクセスします。
TDomain のインスタンスは、密結合関係を使用してドメインを統合する、つまり、2 つのドメイン間の処理で必要なトランザクション ブランチの数を減らすことにより、このデッドロックを解決します。次の図は、この関係を表すトランザクション ツリーを示しています。
ここでも、ゲートウェイでは、Oracle Tuxedo システムのトランザクションとネットワーク トランザクションのマッピングを行わなければなりません。また、ドメイン間の階層構造も維持されていなければなりません。この図では、r1
、r2
、および r3
の 3 つの要求が、1 つの TDomain トランザクション ブランチにマッピングされています。したがって、ドメイン B で生成される必要があるのは、1 つの Oracle Tuxedo システムのトランザクションだけです。T2
は、このマッピングを表します。グラフでは、ドメイン B のドメイン ゲートウェイ グループ GW
が、グループ G1
を調整する様子を示します。要求 r4
は、Domain B の識別子 T2
にマッピングされますが、TDOMAIN はトランザクション ツリーに新しいブランチを生成します。r4
の場合は、B から A' のブランチです。生成されたブランチは、ドメイン A の新しいトランザクション ブランチであるため、ゲートウェイは新しい Oracle Tuxedo トランザクションに対する新しいマッピング T3
を生成します。グラフでは、ドメイン A のドメイン ゲートウェイ グループ GW
が、グループ G4
も調整する様子を示します。このマッピング関係により、ドメイン間通信の階層構造は強化されます。グループ G4
は、グループ G1
より先にコミットすることはできません。
Domains でのトランザクション管理は、次のようにまとめることができます。
ログ機能は、2 フェーズ コミット プロトコルの進行をトラッキングするために使用します。ログの情報から、ネットワーク障害やマシンのクラッシュが発生したときに、トランザクションが完了したかどうかを確認できます。
ドメインをまたがるトランザクションが確実に処理されるようにするため、ドメイン ゲートウェイでは、ローカル識別子とリモート識別子のマッピングが記録されます。このマッピング情報に加え、Domains のトランザクション管理機能により、異なるコミット プロトコル フェーズで決定された処理と、トランザクションに関連するリモート ドメインの情報が記録されます。OSI TP の場合、XAP-TP インタフェースにより、OSI TP プロトコル マシンの回復に必要な情報が記録されます。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 つのオプション パラメータのどちらか、または両方を設定できます。
詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の DMCONFIG(5) を参照してください。
管理者は、実行時管理ユーティリティ (dmadmin
) を使用して DMTLOG
を作成することもできます。詳細については、『Tuxedo コマンド リファレンス』の dmadmin(1) を参照してください。
ドメイン ゲートウェイ グループの起動時に、DMTLOG
が作成されていないと、ゲートウェイ サーバは、BDMCONFIG
ファイルの情報に基づき、ログを自動的に作成します。
BDMCONFIG
ファイルでログ デバイスが指定されない限り、ドメイン ゲートウェイ グループは、要求をトランザクション モードで実行できず、ドメイン ゲートウェイ グループは TMS
サービスを提供できません。
コミット プロトコルを調整するため、ドメイン ゲートウェイでは、次の 2 つのログ レコードが必要です。
トランザクションがすべてのマシンでコミットされると、そのトランザクションのログは削除されます。
OSI TP プロトコルを使用する場合は、次の 2 つのヒューリスティックなレコードが記録されます。
ヒューリスティックなログ レコードは、管理者によって明示的に削除されない限り、削除されません。この特性は、クラッシュ時の回復処理で正しい情報を取得し、管理者に対して診断情報を提供するために必要です。
管理者は、forgettran
コマンド (tmadmin(1) で実行) を使用して、不要になったヒューリスティック レコードを削除することができます。
ドメイン ゲートウェイ グループが起動すると、ゲートウェイ サーバは、DMTLOG
を自動的にウォームスタートします。ウォームスタートでは、ログがスキャンされ、未完了のトランザクションがあるかどうかがチェックされます。未完了のトランザクションが見つかると、そのトランザクションを処理するアクションが実行されます。
OSI TP では、DMTLOG
内の blob にあるトランザクション レコードが、ネットワーク アクセス モジュールに渡されます。渡された blob は、内部状態を再構築し、失敗した接続を回復するために使用されます。
ドメイン ゲートウェイ グループがローカル TMS
の下位であり、ヒューリスティックな決定が行われた場合、TMS
は、最終的に決定された処理を示す TMS_STATUS
メッセージを生成します。