Generate alert when "affinity mask" and "affinity io mask" conflicts.
http://go.microsoft.com/fwlink/?LinkId=199742
Target | Microsoft.KnowledgeServices.SQLServer.DBEngine | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | ConfigurationHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.KnowledgeServices.Library.ScriptMonitorEx | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default | ||
Comment | SupportTopic=SQL Server Performance\Other;VersionNumber=1.0.0.11; |
<UnitMonitor ID="AK79929.AffinityMaskConflict" Comment="SupportTopic=SQL Server Performance\Other;VersionNumber=1.0.0.11;" Accessibility="Public" Enabled="true" Target="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Library.ScriptMonitorEx" ConfirmDelivery="true">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="AlertMessageIDcb17702395b04d4aa49b1c6daf5ccab9">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/AffinityMaskUncommittedValue$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/AffinityMask$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/AffinityIOMaskUncommittedValue$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/AffinityIOMask$</AlertParameter4>
<AlertParameter5>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/Affinity64MaskUncommittedValue$</AlertParameter5>
<AlertParameter6>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/Affinity64Mask$</AlertParameter6>
<AlertParameter7>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/Affinity64IOMaskUncommittedValue$</AlertParameter7>
<AlertParameter8>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/Affinity64IOMask$</AlertParameter8>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ScriptName>AffinityMaskConflict.vbs</ScriptName>
<Arguments>$Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/AffinityMask$ $Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/AffinityIOMask$ $Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/Affinity64Mask$ $Target/Property[Type="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine"]/Affinity64IOMask$</Arguments>
<ScriptBody>
'#Include File:AffinityMaskConflict.vbs
' Copyright (c) Microsoft Corporation. All rights reserved.
' Parameters that should be passed to this script
' 0 affinityMask
' 1 affinity I\O Mask
' 2 affinity64 Mask
' 3 affinity64 I\O Mask
Option Explicit
SetLocale("en-us")
Dim oAPI, oBag
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Dim oArgs
Set oArgs = WScript.Arguments
' We should have atleast 2 inputs. If not quit
If oArgs.Count < 2 Then
Call oBag.AddValue("AffinityConflict", "0")
Call oAPI.Return(oBag)
Wscript.Quit()
End If
Dim affinityMask, affinityIOMask, affinity64Mask, affinity64IOMask
affinityMask = oArgs(0)
affinityIOMask = oArgs(1)
Dim affinityConflict
affinityConflict = 0
If (affinityMask And affinityIOMask) <> 0 Then
affinityConflict = 1
End If
' If we dont have a conflict, then check for 64bit values if they exist.
If (affinityConflict = 0) And (oArgs.Count = 4) Then
affinity64Mask = oArgs(2)
affinity64IOMask = oArgs(3)
If (affinity64Mask And affinity64IOMask) <> 0 Then
affinityConflict = 1
End If
End If
Call oBag.AddValue("AffinityConflict", affinityConflict)
Call oAPI.Return(oBag)
</ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='AffinityConflict']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<Not>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='AffinityConflict']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Not>
</SuccessExpression>
<Schedule>86397</Schedule>
</Configuration>
</UnitMonitor>