Для поддержки транзакций XA требуются записи реестра.

Начиная с Windows Server 2003 координатор распределенных транзакций Майкрософт (MS DTC) требует создания значений реестра для всех библиотек DLL XA, которые планируется использовать. В этой статье описаны действия по изменению реестра.

Исходная версия продукта: Windows Server 2003
Исходный номер базы знаний: 817066

Сводка

Начиная с Windows Server 2003, MS DTC требует создания значений реестра для всех библиотек DLL XA, которые планируется использовать. Это требование было добавлено в Windows Server 2003, чтобы свести к минимуму риски, связанные с использованием сторонних библиотек DLL XA в процессе MS DTC. Чтобы сохранить те же функции при использовании транзакций XA, необходимо добавить значение реестра в раздел DLL XA для каждой библиотеки DLL XA, которую вы планируете использовать. В этой статье описаны эти значения реестра.

Например, при обновлении существующей системы до Windows Server 2003 и использовании MS DTC со сторонними библиотеками DLL XA поддержка транзакций XA отключается до тех пор, пока вы не создадите эти обязательные значения реестра. Кроме того, если позже вы установите сторонний продукт, который предоставляет библиотеки DLL XA для поддержки транзакций XA, необходимо выполнить одно из следующих действий:

  • Создание этих значений реестра вручную
  • Убедитесь, что сторонний установщик создает эти значения реестра.

Включение поддержки транзакций XA

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.

Риск безопасности возникает, когда MS DTC использует пользовательские библиотеки DLL. Эти библиотеки DLL загружаются непосредственно в процессе MS DTC. MS DTC использует эти библиотеки DLL для связи с диспетчером транзакций (TM) партнера XA. В этом сценарии базы данных Resource Manager (RM) могут подвергаться серьезному повреждению данных. Этот сценарий также может разрешить атаки типа "отказ в обслуживании", если вредоносная или неисправная библиотека DLL XA не проверяет правильность фиксаций или прерываний распределенных транзакций. Кроме того, если вредоносная или неисправная библиотека DLL XA содержит код, который не повышает безопасность, злоумышленник может воспользоваться этой слабостью, чтобы вызвать атаку типа "отказ в обслуживании".

Чтобы предотвратить эту угрозу безопасности, Windows Server 2003 отключает все транзакции XA при обновлении до Windows Server 2003. Если поддержка транзакций XA отключена, Windows Server 2003 помогает защитить MS DTC от атак типа "отказ в обслуживании".

Возможно, потребуется включить поддержку транзакций XA. Для этого выполните следующие действия:

  1. Откройте Службы компонентов.
  2. Разверните представление дерева, чтобы найти компьютер, на котором требуется включить поддержку транзакций XA (например, Мой компьютер).
  3. Щелкните правой кнопкой мыши имя компьютера и выберите пункт Свойства.
  4. Перейдите на вкладку MSDTC и щелкните Конфигурация безопасности.
  5. В разделе Параметры безопасности выберите поле проверка для транзакций XA, чтобы включить эту поддержку.

Windows Server 2003 предоставляет запись реестра для указания библиотек DLL XA, которые вы будете использовать. При обновлении до Windows Server 2003 с транзакциями XA можно работать так же, как в более ранних версиях Microsoft Windows Server.

Для этого создайте реестр с именем-value в следующем подразделе реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL

В реестре с именем-значением Name может быть имя файла библиотеки DLL XA (например, dllname.dll), хотя использовать это соглашение об именовании не требуется. Кроме того, в этом именованном значении тип имеет значение String (REG_SZ), а значение — полное имя пути (включая имя файла) к DLL-файлу.

Создайте запись для каждого dll-файла XA, который вы планируете использовать. Кроме того, при настройке MS DTC в кластере необходимо создать эти записи реестра на каждом узле кластера.

Ссылки