図4-1に、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パラメータを使用してドメイン・ゲートウェイ・グループを起動した場合、ゲートウェイ・パラメータも指定できます。
|
dmadminは、
DMADMサーバーおよび
GWADMサーバーに対する管理インタフェースです。これらの2つのサーバー間の通信は、FMLの型付きバッファを使用して実行されます。管理者は、
dmadminコマンドを使用して、次の作業を実行できます。
•
|
BDMCONFIGファイルに格納された情報と特定のOracle Tuxedoアプリケーションで実行している異なるドメイン・ゲートウェイ・グループの情報を対話形式で管理できます。
|
•
|
BDMCONFIGファイルに情報を追加したり、情報を更新できます。
|
注意:
|
実行時にBDMCONFIGファイルから削除できるのは、アクティブなドメイン・ゲートウェイ・グループとは関係のない情報のみです。
|
DMADMサーバーは、次の2つのサービスを通知します。
•
|
DMADMIN。 dmadminコマンドと GWADMサーバーによって使用されます。
|
•
|
DMADM_svrid。 srvidは、サービス用のサーバーIDです。登録済の GWADMサーバーは、特定の管理機能(ドメイン・ゲートウェイ・グループの構成情報をリフレッシュしたり、 GWADMが登録されたままであることを通知する機能など)に対して DMADM_svridを使用します。
|
DMADMサーバーは、グループ内で実行しているサーバー(
DMADMGRPなど)として
TUXCONFIGファイルの
SERVERSセクションで定義されている必要があります。このグループには、
DMADMサーバーのインスタンスが1つのみ必要です。
ゲートウェイ管理サーバーGWADM(5)は、Oracle Tuxedoに組み込まれているサーバーであり、ドメイン・ゲートウェイ・グループ用の管理機能を提供します。
GWADMサーバーの主な機能は、以下のとおりです。
•
|
DMADMサーバーからDomainsの構成情報を取得したり、 dmadminからの問合せを受け付けます。 GWADMサーバーは、 DMADMサーバーに登録することにより、ドメイン・ゲートウェイ・グループの構成情報を取得します。次に、 GWADMサーバーは、この情報を共有メモリーに格納し、ゲートウェイでこの構成を利用できるようにします。
|
•
|
ドメイン・ゲートウェイ・グループ用のトランザクション・ログ機能を提供します。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のシステム・アーキテクチャでは、トランザクション・マネージャ・サーバー(TMS)という別個のプロセスにより、特定のグループにアクセスするトランザクション・ブランチのコミットやリカバリが調整されます。ただし、Domains環境で、受信したトランザクションのコミット操作を処理するには、ゲートウェイから
TMSサーバーに別途メッセージを送信する必要があります。Domainsのアーキテクチャを単純化し、送信メッセージの数を抑えるため、
TMSコードは、ゲートウェイ・コードと統合されています。これで、ドメイン・ゲートウェイは、Oracle Tuxedoシステムで使用されるトランザクション・プロトコルを処理できます。Oracle Tuxedoのトランザクション・プロトコルを使用するには、ドメイン・ゲートウェイ・グループで
TMSサービスが通知されている必要があります(この通知は、最初のゲートウェイの起動時に実行されます)。いったん
TMSサービスが通知されると、ドメイン・ゲートウェイ・グループ宛てのトランザクション・コントロール・メッセージは、すべてゲートウェイのキューに登録されます。
ドメイン・ゲートウェイ・グループは、TUXCONFIGファイルで定義されており、
TMSNAME、
TMSCOUNT、
OPENINFO、
CLOSEINFOの各パラメータは指定されません。これらのパラメータは、XA対応のリソース・マネージャを使用するゲートウェイ・グループにのみ適用されるためです。ドメイン・ゲートウェイは、このリソース・マネージャを使用しません。
Oracle TuxedoシステムのTMSは、X/Open XA準拠のリソース・マネージャを使用するサーバー・グループと暗黙的に関連付けられた特別なサーバーです。
TMSサーバーは、分散型の2フェーズ・コミット・プロトコルに伴うアプリケーション・サーバーでの遅延を解消します。つまり、
TMSサーバーは、
TMSサービスに対して特殊なサービス・リクエストを発行することにより、トランザクションのコミットを調整します。このサービスは、すべての
TMSサーバーで提供されます。
一方、Domains環境では、GWTDOMAINゲートウェイはXA準拠のリソース・マネージャと関連付けられていません。X/Openのトランザクション処理ワーキング・グループ(
TPWG)は高度なXAインタフェースを提案しました。このインタフェースは、Oracle Tuxedoシステムでは使用されていません。というのは、ゲートウェイに必要な非同期性の高い非ブロック型のモデルにインタフェースが一致しないからです。ドメイン・ゲートウェイは、専用の
TMSサーバーは使用しませんが、トランザクション・マネージャ・サーバーと同等の機能、つまり、ドメイン間で実行されるトランザクションの2フェーズ・コミットを調整します。
1.
|
ドメイン・ゲートウェイは、TMSサービスを通知し、そのサービスに関連するすべての操作を実行します。このサービスに送信されたメッセージは、適切なドメイン・ゲートウェイ・グループによって使用されるキューに登録され、ゲートウェイはグループに対応付けられたトランザクションを管理します。
|
4.
|
ゲートウェイは、AUTOTRAN機能を使用して、転送サービスを使用する特定のクライアントまたはサーバーのためにトランザクションのコミットを管理します。この組合せが使用された場合には、転送チェーンの最後のサーバー(ドメイン・ゲートウェイ)がコミットを発行し、トランザクションのコーディネータになります。(ドメイン・ゲートウェイは、常に転送チェーンの最後のサーバーとして機能します。)
|
5.
|
ゲートウェイは、AUTOTRAN機能で指定されたリモート・サービスに対してトランザクションを自動的に開始および終了します。この機能は、アプリケーション管理者がリモート・サービスとのネットワーク・コミュニケーションの信頼性を強化したいときに必要です。管理者がこの機能を指定するには、対応するリモート・サービス定義の中のパラメータ AUTOTRANに Yを設定します。
|
詳細は、『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の
「DMCONFIG(5)」の
DM_IMPORTに関する項を参照してください。
GTRIDは、
グローバル・
トランザクション識別子です。
GTRIDマッピングでは、ドメインの境界をまたぐトランザクション・ツリーの構築方法を定義します。
GTRIDを指定するには、Oracle Tuxedo構成ファイルの
RESOURCESセクションの
MAXGTTパラメータを使用します。
密結合関係では、1つのグローバル・トランザクションに参加するすべてのプロセスで同じトランザクション識別子(
XID)が使用され、同じRMへのアクセスが行われます。この関係が確立されていると、プロセス間のデータ共有性を最大化できます。つまり、XA準拠のRMでは、同じ
XIDのプロセスによって使用されるリソースがロックを共有すると見なされます。Oracle Tuxedoシステムでは、「グループ」の概念に基づいて密結合関係を実現します。つまり、指定されたグローバル・トランザクションの代わりに、グループがすべての作業を行い、それらの作業は同じトランザクション・ブランチに設定されます。グループが行ったすべてのプロセスには、同じ
XIDが指定されます。
疎結合関係の
TMSは、グローバル・トランザクションに参加する各作業に対して、トランザクション・ブランチを生成します。RMは、各トランザクション・ブランチを別々に処理します。トランザクション・ブランチ間では、データやロックは共有されません。トランザクション・ブランチ間でデッドロックが発生すると、グローバル・トランザクションがロールバックされます。Oracle Tuxedoアプリケーションでは、1つのグローバル・トランザクションに様々なグループが参加している場合、グループごとに別のトランザクション・ブランチが定義され、疎結合関係が確立されます。
TDomainのインスタンスは、密結合関係を実現することにより、GTRIDのマッピングを最適化しようとします。TDomainでは、同じグローバル・トランザクションから発行された複数のサービス・リクエストは、同じネットワーク・トランザクション・ブランチにマッピングされます。したがって、受信したサービス・リクエストは、1つのOracle Tuxedoトランザクションにマッピングされます。ただし、ドメイン間通信の階層構造とドメイン間の関係を示すトランザクション・ツリーは保持される必要があります。
図4-4に、3つのサービス・リクエスト(1つのローカル・リクエスト(
r0)と2つのリモート・リクエスト(
r2および
r3))を生成するクライアントのサービス・リクエストのグラフを示します。
r0は、ローカル・サービス(
Svc0)に送信され、別のリモート・サービス・リクエスト(
r1)を生成します。
r1はリモート・サービス
Rsvc1に送信され、Rsvc1は、ループバック・サービス・リクエスト
r4をローカル・サービス
Svc4に送信します。
Svc0と
Svc4は、別々のグループ(
G0と
G4)で実行されます。ドメイン・ゲートウェイは、他のグループ(
GW)内で実行され、リモート・サービス
Rsvc1、
Rsvc2および
Rsvc3は別のドメイン(ドメインB)で実行されます。
ループバックのサービス・リクエストr4は、トランザクション・ツリーに別のブランチを生成します。OSI TPは、このリクエストを識別子
T2にマッピングしますが、XAP-TPは、トランザクション・ツリーに新しいブランチを生成します。
r4の場合は、BからA'のブランチです。生成されたブランチは、ドメインAの新しいトランザクション・ブランチであるため、ゲートウェイは新しいOracle Tuxedoトランザクションに対する新しいマッピング
T5を生成します。トランザクション・グラフでは、ドメインAのドメイン・ゲートウェイ・グループGWが、グループ
G4を調整する様子を示します。
図4-5に、Oracle eLink OSI IP環境のトランザクション・ツリーを示します。
ゲートウェイはOracle Tuxedoシステム・トランザクションとネットワーク・トランザクション間で引き続きマッピングを実行する必要があり、ドメイン間通信の階層性が厳密に適用されている必要があることに注意します。この図では、r1、
r2および
r3のリクエストが、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より先にコミットすることはできません。
Domainsのログ・レコードの構造は、Oracle TuxedoシステムのTLOGに格納されているログ・レコードの構造とは異なります。
TLOGレコードのサイズは決まっており、単一のページに格納されています。一方、Domainsのログ・レコードのサイズは可変であり、レコードの大きさによっては、複数のページが必要な場合もあります。Domainsのログ・メカニズムである
DMTLOGでは、様々なサイズのログ・レコードを格納できます。
TMSがドメイン・ゲートウェイ・グループより上位の場合は、コミットの調整のためにOracle Tuxedoの
TLOGが必要です。
ログは、GWADM管理サーバーによって記録されます。ログへの書込みは、
GWTDOMAINプロセスによってリクエストされますが、実際の書込みは、
GWADMプロセスによって実行されます。
各ドメイン・ゲートウェイ・グループには、DMTLOGというログ・ファイルを作成する必要があります。
DMTLOGファイルは、
DMCONFIGファイルの
DM_LOCALセクションで定義されます。
DMTLOGファイルを作成するには、
DMTLOGDEVパラメータにエントリを追加します。
stringはログ・ファイルの名前です。さらに、次の2つのオプション・パラメータのどちらか、または両方を設定できます。
BDMCONFIGファイルでログ・デバイスが指定されないかぎり、ドメイン・ゲートウェイ・グループは、リクエストをトランザクション・モードで実行できず、ドメイン・ゲートウェイ・グループは
TMSサービスを提供できません。
•
|
レディ・レコード - トランザクション・ツリーでリーフまたは中間マシンとして機能するファイルです。ゲートウェイによって作成されます。このファイルには、トランザクションに関連する上位および下位のリモート・ドメインについての情報が記録されます。レディ・レコードは、レコードを記録するドメイン・ゲートウェイ・グループの下位のものがすべて準備できたことを示します。
|
•
|
コミット・レコード - コミット・レコードは、トランザクションがコミットされたことを記録します。ドメイン・ゲートウェイは、特定のトランザクション・ツリーのコーディネータとして、コミット・レコードを作成します。
|
•
|
ログ・ヒューリスティック・レコード - ドメインで行われたヒューリスティックな決定の詳細を記録します。この情報は、適切なトランザクションの結果が上位ドメインに通知されるまで保持されます。
|
•
|
ログ破損レコード - トランザクション・ブランチの2種類の状態、つまり、 ヒューリスティック・ハザード(下位ドメインのトランザクション・ブランチの結果が不明)または ヒューリスティック・ミックス(トランザクション・サブツリーの結果が混在)のいずれかを示します。これは、 tmadmin(1)を実行して作成します。
|
OSI TPでは、DMTLOG内の
blobsにあるトランザクション・レコードが、ネットワーク・アクセス・モジュールに渡されます。渡されたblobは、内部状態を再構築し、失敗した接続を回復するために使用されます