Server instance to SQL Monitor

Microsoft.Dynamics.Nav.2013.ServerInstance2SqlMonitor (UnitMonitor)

Monitors the connection to SQL server.

Knowledge Base article:

Summary

This monitor detects when a connection to SQL server cannot be established or is no longer usable.

Causes

* The SQL server has been shut down manually or because of an error. * The SQL server connection settings are not correct. * A network failure has occurred.

Resolutions

To troubleshoot this issue, investigate the detailed error description in the event log entries on the computer running SQL server.

Element properties:

TargetMicrosoft.Dynamics.Nav.2013.ServerInstance
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
The connection to SQL server cannot be established or is no longer usable.
A fatal error occurred. The connection to SQL server cannot be established or is no longer usable. This can be caused by one of the following reasons:

* The SQL server has been shut down manually or because of an error.
* The SQL server connection settings are not correct.
* A network failure has occurred.
RunAsMicrosoft.Dynamics.Nav.2013.DefaultAccount

Source Code:

<UnitMonitor ID="Microsoft.Dynamics.Nav.2013.ServerInstance2SqlMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.Dynamics.Nav.2013.ServerInstance" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="false" RunAs="Microsoft.Dynamics.Nav.2013.DefaultAccount">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Dynamics.Nav.2013.ServerInstance2SqlMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="FirstEventRaised" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="SecondEventRaised" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>Application</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">EventSourceName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Service!Microsoft.SystemCenter.NTService"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<!-- The connection to SQL server cannot be established or is no longer usable. (eventid = 112) -->
<Value>112</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>Server instance: $Target/Property[Type="Microsoft.Dynamics.Nav.2013.ServerInstance"]/ServerInstance$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>DoesNotContainSubstring</Operator>
<Pattern>Tenant ID: </Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>Application</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">EventSourceName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Service!Microsoft.SystemCenter.NTService"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<!-- The connection to SQL server is healthy. (eventid = 113) -->
<Value>113</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>Server instance: $Target/Property[Type="Microsoft.Dynamics.Nav.2013.ServerInstance"]/ServerInstance$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>DoesNotContainSubstring</Operator>
<Pattern>Tenant ID: </Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>