Правило создает предупреждение, когда SQL Server не удается включить в список новую или существующую распределенную транзакцию.
Это сообщение появляется, когда SQL Server не удается включить в список новую или существующую транзакцию MSDTC (координатора распределенных транзакций Майкрософт).
Первопричины ошибки такого типа могут быть различными. Состояние ошибки, конкретный код результата, возвращенный вместе с ошибкой, а также любые другие ошибки, возникшие примерно в то же время, могут помочь определить причину сбоя включения в список. Сбой включения в список часто свидетельствует о неполадке связи, такой как неудачное разрешение имен. Эта ошибка также может быть следствием структуры вызывающего приложения, блокировки или проблем с производительностью на стороне SQL Server.
Убедитесь в том, что служба MS DTC запущена на обоих компьютерах, участвующих в этой транзакции MS DTC. Если служба MS DTC является кластеризованной, то с помощью программы "Администратор кластера" проверьте, работает ли она в режиме "в сети".
Проверьте в журналах событий серверы, вовлеченные в эту транзакцию MS DTC, чтобы выяснить наличие других ошибок, возникших одновременно с этим сообщением. Если есть другие ошибки, то сначала устраните их, так как эта ошибка часто является следствием других ошибок.
По умолчанию сетевой доступ для MS DTC в Windows Server 2003 отключен. Если какой-либо из компьютеров работает под управлением Windows 2003, убедитесь, что MS DTC включен.
Проверьте, правильно ли выполняется обмен данными RPC между вовлеченными серверами.
Перезагрузите серверы, вовлеченные в эту транзакцию MS DTC, чтобы очистить все сведения об IP-адресах.
Убедитесь в том, что время ожидания транзакции для вызывающего компонента COM+ настроено достаточно большим для предотвращения его истечения, которое может привести к попытке включить отдельный компонент в транзакцию, время ожидания которой уже истекло.
Если параметр конфигурации SQL Server "использование упрощенных пулов" (также известен как "режим волокон") включен, отключите его. Проверьте, продолжает ли появляться данная ошибка.
Если параметр конфигурации SQL Server "повышение приоритета" включен, отключите его. Проверьте, продолжает ли появляться данная ошибка.
См. статью базы знаний Майкрософт 307802, чтобы узнать, насколько точно используемая среда соответствует описываемой в статье. При точном соответствии проверьте изменение одного из факторов среды, чтобы узнать, не прекратилось ли появление данного сообщения. Если сообщение перестает появляться, когда текущая среда больше не соответствует описанию статьи, то это сообщение можно пропустить без последствий.
Имя | Описание | Значение по умолчанию |
Включено | Включает или отключает рабочий процесс. | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, в который следует запустить рабочий процесс. | 300 |
Приоритет | Определение приоритета оповещений. | 1 |
Важность | Определяет серьезность предупреждения. | 1 |
Время синхронизации | Время синхронизации |
|
Время ожидания (в секундах) | Указывает время, в течение которого может выполняться рабочий процесс, прежде чем он будет закрыт или завершится сбоем. | 200 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
Target | Microsoft.SQLServer.Windows.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.Enlist_of_MSDTC_transaction_failed_1_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>8510</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.Enlist_of_MSDTC_transaction_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>