La regla desencadena una alerta cuando SQL Server no puede dar de alta una transacción distribuida nueva o existente.
Este mensaje aparece cuando SQL Server no puede dar de alta una transacción nueva o existente de Microsoft DTC (Coordinador de transacciones distribuidas).
Pueden haber muchas causas principales que produzcan un error de este tipo. El estado del error, el código de resultado específico devuelto con el error y cualquier otro error que se produzca más o menos al mismo tiempo pueden ayudarle a determinar el motivo del error al tramitar el alta. Un error al dar de alta suele indicar un problema de comunicación, como por ejemplo en la resolución de nombres. También puede deberse al diseño de la aplicación que realiza la llamada, o bien a un bloqueo o a problemas de rendimiento en SQL Server.
Compruebe que se ha iniciado MS DTC en ambos equipos implicados en la transacción de MS DTC. Si el servicio MS DTC está agrupado, compruebe que esté en línea en el Administrador de clústeres.
Revise los registros de eventos de los servidores involucrados en la transacción MS DTC para comprobar si se han producido otros errores al mismo tiempo que este mensaje. Si hay otros errores, soluciónelos en primer lugar, ya que este error suele ser un efecto secundario de otros errores.
De forma predeterminada, el acceso de red de MS DTC está deshabilitado en Windows Server 2003. Si alguno de los equipos implicados ejecuta Windows 2003, compruebe que se haya habilitado MS DTC.
Compruebe que las comunicaciones RPC entre los servidores implicados funcionen correctamente.
Reinicie los servidores involucrados en la transacción MS DTC para vaciar toda la información acerca de las direcciones IP.
Compruebe que la configuración de tiempo de expiración para transacciones del componente COM+ que realiza la llamada sea adecuada para evitar la superación del tiempo de expiración, ya que esto podría hacer que otro componente intentara darse de alta en una transacción que ya ha agotado el tiempo de expiración.
Si ha activado la opción de configuración "agrupación ligera" (o "modo de fibra") de SQL Server, vuelva a desactivarla. Compruebe si el error se sigue produciendo.
Si ha activado la opción de configuración de SQL Server "aumento de prioridad", vuelva a desactivarla. Compruebe si el error se sigue produciendo.
Revise el artículo de Microsoft Knowledge Base 307802 para ver si su entorno coincide exactamente con el descrito en el artículo. Si es así, intente cambiar uno de los factores del entorno para comprobar si el mensaje deja de aparecer. Si no vuelve a aparecer cuando el entorno ya no coincide con la descripción del artículo, sabrá que puede hacer caso omiso del mensaje sin riesgos.
Nombre | Descripción | Valor predeterminado |
Habilitado | Habilita o deshabilita el flujo de trabajo. | Sí |
Intervalo (segundos) | Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo. | 300 |
Prioridad | Define la prioridad de alerta. | 1 |
Gravedad | Define la gravedad de alerta. | 1 |
Hora de sincronización | Hora de sincronización |
|
Tiempo de espera (segundos) | Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo. | 200 |
Tiempo de expiración de la conexión de base de datos (segundos) | Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado. | 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>