MSSQL 2017 on Linux: An error occurred in the Service Broker queue rollback handler

Microsoft.SQLServer.2017.Linux.EventRule.DBEngine.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule (Rule)

SQL Server Service Broker raises MSSQLSERVER event ID 8405 when an error prevents Service Broker from disabling a queue during a rollback.

Knowledge Base article:

Summary

SQL Server Service Broker raises MSSQLSERVER event ID 8405 when an error prevents Service Broker from disabling a queue during a rollback.

Causes

The error that prevented Service Broker from disabling the queue is registered in the Linux application log as MSSQLSERVER event ID 8405.

Resolutions

Check the Linux application log. Find the MSSQLSERVER event ID 8405 and identify the error that prevented Service Broker from disabling a queue during rollback. The error specified in the Linux application log is the root cause of this error. Fix the root cause and then restart the application.

External

See "Handling Poison Messages" in SQL Server Books Online.

Overrideable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

Yes

Interval (seconds)

The recurring interval of time in seconds in which to run the workflow.

300

Priority

Defines Alert Priority.

1

Severity

Defines Alert Severity.

2

Synchronization Time

Synchronization Time

 

Timeout (seconds)

Specifies the time the workflow is allowed to run before being closed and marked as failed.

200

Timeout for database connection (seconds)

The workflow will fail and register an event, if it cannot access the database during the specified period.

15

Element properties:

TargetMicrosoft.SQLServer.2017.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2017 on Linux: An error occurred in the Service Broker queue rollback handler
{0}
CommentMom2017ID='{AE10A975-0731-4479-A665-1CF81FE3985D}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.2017.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2017.Linux.EventRule.DBEngine.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule" Target="SQL2017LD!Microsoft.SQLServer.2017.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{AE10A975-0731-4479-A665-1CF81FE3985D}';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.2017.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/ConnectionString$</ConnectionString>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>8405</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2017.Linux.EventRule.DBEngine.An_error_occurred_in_the_Service_Broker_queue_rollback_handler_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>