Service Broker キュー ロールバック ハンドラーでエラーが発生しました

Microsoft.SQLServer.2008.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule (Rule)

Knowledge Base article:

概要

SQL Server Service Broker は、ロールバック中にエラーが発生して Service Broker でキューを無効にできない場合に、MSSQLSERVER イベント ID 8405 を生成します。

原因

Service Broker でキューを無効にできない原因となったエラーは、Windows アプリケーション ログに MSSQLSERVER イベント ID 8405 として記録されます。

解決方法

Windows アプリケーション ログを確認します。MSSQLSERVER イベント ID 8405 を見つけ、ロールバック中に Service Broker でキューを無効にできない原因となったエラーを特定します。Windows アプリケーション ログで指定されたエラーが、このエラーの根本原因です。根本原因を解決してから、アプリケーションを再起動してください。

外部資料

SQL Server 2008 オンライン ブックの「有害なメッセージの処理」を参照してください。

上書き可能なパラメーター

名前

説明

既定値

有効

ワークフローを有効または無効にします。

はい

優先順位

アラートの優先順位を定義します。

1

重大度

アラートの重大度を定義します。

2

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8405
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Service Broker キュー ロールバック ハンドラーでエラーが発生しました
{0}
Event LogApplication
CommentMom2008ID='{AE10A975-0731-4479-A665-1CF81FE3985D}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.2008.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{AE10A975-0731-4479-A665-1CF81FE3985D}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.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.2008.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>