XA トランザクションのサポートには、レジストリ エントリが必要です

Windows Server 2003 以降、Microsoft 分散トランザクション コーディネーター (MS DTC) では、使用する予定のすべての XA DLL のレジストリ値を作成する必要があります。 この記事では、レジストリを変更する手順について説明します。

元の製品バージョン: Windows Server 2003
元の KB 番号: 817066

概要

Windows Server 2003 以降、MS DTC では、使用する予定のすべての XA DLL のレジストリ値を作成する必要があります。 この要件は、MS DTC プロセスでのサードパーティの XA DLL の使用に関連するリスクを最小限に抑えるために、Windows Server 2003 に追加されました。 XA トランザクションを使用するときに同じ機能を保持するには、使用する予定の XA DLL ごとに XA DLL キーにレジストリ値を追加する必要があります。 この記事では、これらのレジストリ値について説明します。

たとえば、既存のシステムを Windows Server 2003 にアップグレードし、既存のシステムでサードパーティの XA DLL を使用して MS DTC を使用する場合、これらの必要なレジストリ値を作成するまで XA トランザクションのサポートは無効になります。 また、後で XA トランザクションをサポートする XA DLL を提供するサードパーティ製品をインストールする場合は、次のいずれかの操作を行う必要があります。

  • これらのレジストリ値を手動で作成する
  • サード パーティ製インストーラーによってこれらのレジストリ値が作成されることを確認する

XA トランザクションのサポートを有効にする

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。

セキュリティ リスクは、MS DTC がユーザー指定の DLL を使用する場合に発生します。 これらの DLL は、MS DTC プロセスに直接読み込まれます。 MS DTC は、これらの DLL を使用して XA パートナーのトランザクション マネージャー (TM) と通信します。 このシナリオでは、Resource Manager (RM) データベースを重大なデータ破損に公開できます。 また、このシナリオでは、悪意のある XA DLL または欠陥のある XA DLL が分散トランザクションが正しくコミットまたは中止したことを確認しない場合に、サービス拒否攻撃を許可することもできます。 また、悪意のある XA DLL または欠陥のある XA DLL にセキュリティ強化されていないコードが含まれている場合、攻撃者はこの脆弱性を悪用してサービス拒否攻撃を引き起こす可能性があります。

このセキュリティ リスクを防ぐために、Windows Server 2003 では、Windows Server 2003 にアップグレードすると、すべての XA トランザクションがオフになります。 XA トランザクションのサポートがオフになっている場合、Windows Server 2003 は MS DTC をサービス拒否攻撃から保護するのに役立ちます。

XA トランザクションのサポートを有効にする必要がある場合があります。 これを行うには、次の手順を実行します。

  1. コンポーネント サービスを開きます。
  2. ツリー ビューを展開して、XA トランザクションのサポートを有効にするコンピューター ( マイ コンピューターなど) を見つけます。
  3. コンピューター名を右クリックし、[ プロパティ] をクリックします。
  4. [ MSDTC ] タブをクリックし、[ セキュリティ構成] をクリックします。
  5. [セキュリティ設定] で、[XA トランザクション] の [チェック] ボックスを選択して、このサポートを有効にします。

Windows Server 2003 には、使用する XA DLL を指定するためのレジストリ エントリが用意されています。 Windows Server 2003 にアップグレードすると、以前のバージョンの Microsoft Windows Server で使用したのと同じ方法で XA トランザクションを操作できます。

これを行うには、次のレジストリ サブキーの下に、名前付き値のレジストリを作成します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL

レジストリの名前付き値では、 名前 は XA DLL のファイル名 (たとえば、dllname.dll) にすることができますが、この名前付け規則を使用する必要はありません。 また、この名前付き値の Type は String (REG_SZ)、値は DLL ファイルの完全パス名 (ファイル名を含む) です。

使用する予定の XA DLL ファイルごとにエントリを作成します。 また、クラスターで MS DTC を構成する場合は、クラスター内の各ノードにこれらのレジストリ エントリを作成する必要があります。

関連情報