MSSQL 2016: Service Broker 佇列復原處理常式發生錯誤

Microsoft.SQLServer.2016.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule (Rule)

當錯誤導致 Service Broker 無法於復原期間停用佇列時,SQL Server Service Broker 會引發 MSSQLSERVER 事件識別碼 8405。

Knowledge Base article:

摘要

當錯誤導致 Service Broker 無法於復原期間停用佇列時,SQL Server Service Broker 會引發 MSSQLSERVER 事件識別碼 8405。

原因

導致 Service Broker 無法停用佇列的錯誤,在 Windows 應用程式記錄檔中登記為 MSSQLSERVER 事件識別碼 8405。

解決方式

檢查 Windows 應用程式記錄檔。尋找 MSSQLSERVER 事件識別碼 8405,並判別於復原期間導致 Service Broker 無法停用佇列的錯誤為何。於 Windows 應用程式記錄檔中指明的錯誤即為此錯誤的根本原因。修正根本原因後重新啟動應用程式。

外部資源

請參閱《SQL Server 2016 線上叢書》中的<處理有害訊息>。

可覆寫的參數

名稱

描述

預設值

已啟用

啟用或停用該工作流程。

優先順序

定義警示優先順序。

1

嚴重性

定義警示嚴重性。

2

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8405
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: Service Broker 佇列復原處理常式發生錯誤
{0}
Event LogApplication
CommentMom2016ID='{AE10A975-0731-4479-A665-1CF81FE3985D}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{AE10A975-0731-4479-A665-1CF81FE3985D}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>8405</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>