MSSQL on Windows: The MSSQLServer service terminated unexpectedly

Microsoft.SQLServer.Windows.EventRule.DBEngine.The_MSSQLServer_service_terminated_unexpectedly_3_5_Rule (Rule)

The error is reported by the SQL Server Agent service when it auto restarts SQL Server. SQL Server Agent will only auto restart SQL Server if SQL Server stopped for some reason other than an explicit stop command from a user or application, and if the “Auto restart SQL Server if it stops unexpectedly” option is selected in SQL Server Agent Advanced properties. During the restart of SQL Server, SQL Server Agent will write this message to the application event log on the computer hosting SQL Server.

Knowledge Base article:

Summary

The error is reported by the SQL Server Agent service when it auto restarts SQL Server. SQL Server Agent will only auto restart SQL Server if SQL Server stopped for some reason other than an explicit stop command from a user or application, and if the “Auto restart SQL Server if it stops unexpectedly” option is selected in SQL Server Agent Advanced properties. During the restart of SQL Server, SQL Server Agent will write this message to the application event log on the computer hosting SQL Server.

SQL Server can stop unexpectedly from several different causes. Those causes include:

Resolutions

If you do not want SQL Server Agent to automatically restart SQL Server, turn the option off. The procedure for this is described in "SQL Server Agent Properties (Advanced Tab)" in Books Online.

If the problem occurs repeatedly, you will need to determine why the SQL Server service unexpectedly stopped:

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.Windows.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL on Windows: The MSSQLServer service terminated unexpectedly
{0}
CommentMom2017ID='{D9D2C13A-3AAA-410C-B594-EC4ED1A7FC75}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.The_MSSQLServer_service_terminated_unexpectedly_3_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{D9D2C13A-3AAA-410C-B594-EC4ED1A7FC75}';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>14265</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.The_MSSQLServer_service_terminated_unexpectedly_3_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>