This monitor type detects any duplicate relationships that exist in the operational database to avoid excessive data being generated by discoveries which can cause a problem in updating configurations.
Knowledge Base article:
Summary
Monitor type to check for duplicate relationships between agents and servers.
'Set DB connection
Set objCN = CreateObject("ADODB.Connection")
objCN.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & _
strDatabase & ";Data Source=" & strDBServer & ""
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
Set oBag = oAPI.CreatePropertyBag()
Call oBag.AddValue("Error", "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description)
Call oBag.AddValue("RecordsCount", "0")
Call oAPI.Return(oBag)
oAPI.LogScriptEvent "DetectDuplicateRelAgnToSrvMonitor.vbs",100,EVENT_TYPE_ERROR,"Script executed with Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
WScript.Quit
End If
strQuery = "SELECT Count(TT.RecordsCount) As RecordsCount From (SELECT Count(*) AS RecordsCount FROM Relationship R (NoLock) " & _
"JOIN RelationshipType RT (NoLock) " & _
"ON RT.RelationshipTypeId = R.RelationshipTypeId " & _
"JOIN BaseManagedEntity BE1 (NoLock) " & _
"ON R.SourceEntityId = BE1.BaseManagedEntityId " & _
"JOIN BaseManagedEntity BE2 (NoLock) " & _
"ON R.TargetEntityId = BE2.BaseManagedEntityId " & _
"WHERE (RT.RelationshipTypeName = 'Microsoft.SystemCenter.HealthServiceCommunication' " & _
"OR RT.RelationshipTypeName = 'Microsoft.SystemCenter.HealthServiceSecondaryCommunication') " & _
"AND R.IsDeleted = 0 " & _
"group by R.SourceEntityId, R.TargetEntityId, BE1.FullName, BE2.FullName " & _
"having count(*) > 1 ) As TT"
'Query DB
Set objRS = objCN.Execute(strQuery)
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
Set oBag = oAPI.CreatePropertyBag()
Call oBag.AddValue("Error", "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description)
Call oBag.AddValue("RecordsCount", "0")
Call oAPI.Return(oBag)
oAPI.LogScriptEvent "DetectDuplicateRelAgnToSrvMonitor.vbs",100,EVENT_TYPE_ERROR,"Script executed with Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
WScript.Quit
End If
Call oBag.AddValue("RecordsCount", strRecordsCount)
oAPI.LogScriptEvent "DetectDuplicateRelAgnToSrvMonitor.vbs",100,EVENT_TYPE_INFORMATION,"Script executed with Duplicate Records Count " & strRecordsCount
Public Sub Save()
m_lNumber = Err.number
m_sSource = Err.Source
m_sDescription = Err.Description
m_sHelpContext = Err.HelpContext
m_sHelpFile = Err.helpfile
End Sub
Public Sub Raise()
Err.Raise m_lNumber, m_sSource, m_sDescription, m_sHelpFile, m_sHelpContext
End Sub
Public Sub Clear()
m_lNumber = 0
m_sSource = ""
m_sDescription = ""
m_sHelpContext = ""
m_sHelpFile = ""
End Sub
Public Default Property Get Number()
Number = m_lNumber
End Property
Public Property Get Source()
Source = m_sSource
End Property
Public Property Get Description()
Description = m_sDescription
End Property
Public Property Get HelpContext()
HelpContext = m_sHelpContext
End Property