A regra dispara um alerta quando o SQL Server falha ao inscrever uma transação distribuída nova ou existente.
Essa mensagem ocorre quando o SQL Server falha ao inscrever uma transação MSDTC (Coordenador de Transações Distribuídas da Microsoft) nova ou já existente.
Podem existir muitas causas raiz para um erro deste tipo. O estado do erro, o código de resultado específico retornado com o erro e todos os outros erros que ocorreram em horário próximo podem ajudar a determinar por que a inscrição falhou. A falha na inscrição geralmente é um sinal de problema de comunicação, como uma falha na resolução de nomes. Ela também pode ser resultado da maneira como o aplicativo de chamada é projetado ou de problemas de bloqueio ou de desempenho no lado do SQL Server.
Verifique se o MS DTC foi iniciado em ambos os computadores envolvidos na transação do MS DTC. Se o serviço MS DTC estiver em cluster, verifique se ele está online no Administrador de Cluster.
Examine os logs de eventos dos servidores envolvidos na transação do MS DTC para ver se há outros erros ao mesmo tempo iguais aos da mensagem. Se houver outros erros, solucione-os primeiro, porque esse erro normalmente é um efeito colateral de outros erros.
Por padrão, o acesso do MS DTC à rede fica desabilitado no Windows Server 2003. Se algum computador envolvido estiver executando o Windows 2003, verifique se o MS DTC foi habilitado.
Verifique se as comunicações RPC entre os servidores envolvidos estão funcionando corretamente.
Reinicialize os servidores envolvidos na transação do MS DTC para liberar todas as informações de endereço IP.
Verifique se as configurações de tempo limite de transação do componente COM+ da chamada são longas o suficiente para evitar que o tempo limite seja atingido resultando em um componente separado tentando inscrever-se em uma transação já expirada
Se você tiver ativado a opção de configuração "lightweight pooling" do SQL Server (também conhecida como "modo de fibra") desative-a. Teste se o erro ainda ocorre.
Caso tenha ativado a opção de configuração "aumento de prioridade" do SQL Server, desative-a. Teste se o erro ainda ocorre.
Analise o artigo 307802 da Base de Dados de Conhecimento Microsoft para saber se o seu ambiente é uma correspondência exata do ambiente no artigo. Se for uma correspondência exata, tente alterar um dos fatores ambientais para ver se a mensagem deixa de ocorrer. Se ela deixar de ocorrer quando o ambiente não corresponder mais ao artigo, você saberá que a mensagem pode ser ignorada com segurança.
Nome | Descrição | Valor Padrão |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho. | 300 |
Prioridade | Define a Prioridade do Alerta. | 1 |
Severidade | Define a Severidade do Alerta. | 1 |
Tempo de Sincronização | Tempo de Sincronização |
|
Tempo Limite (em segundos) | Especifica o tempo que o fluxo de trabalho pode para ser executado antes de ser fechado e marcado como falha. | 200 |
Tempo limite da conexão de banco de dados (segundos) | O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o 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>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<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>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>