Hi I am trying to execute below script in a two-state monitor for creating an alert based on SQL Query. but not getting any alert although the query executes fine if I check it using OLEDB Monitor in SCOM.
I am using unhealthy criteria to be:
Property[@Name='JobState'] equals FAIL
To trace, I am writing below textual status on a file D:\ABC\SCOMSCRIPT.TXT. and this file shows all the values correctly:
"CONNECTION OPENED.QUERY EXECUTED.FAIL.RETURNING oBag to SCOM."
But SCOM doesn't raise any alert in alerts section. Any help or idea:
Dim objCN, strConnection
Dim objAPI, oBag
Set objCN = CreateObject("ADODB.Connection")
Set objAPI = CreateObject("MOM.ScriptAPI")
Set oBag = objAPI.CreatePropertyBag()
strConnection = "Driver={SQL Server};Server=DB05.ABC.DE;Database=DBprod;Trusted_Connection=TRUE"
objCN.Open strConnection
Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile="D:\ABC\SCOMSCRIPT.TXT"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "CONNECTION OPENED."
Dim strSQLQuery
strSQLQuery = "SELECT TOP 1 [joblogJobName], [job_definition_gkey], [execution_node], [scheduler_group_name], [job_start_date], [job_end_date], [job_execution_time], [state], [note] FROM [DBprod].[dbo].[frm_job_log] where state='FAIL' order by job_end_date DESC"
Dim objRS
Set objRS=CreateObject("ADODB.Recordset")
Set objRS = objCN.Execute(strSQLQuery)
objFile.Write "QUERY EXECUTED."
objFile.Write objRS.Fields("state") & "."
Call oBag.AddValue("JobState",objRS.Fields("state"))
objFile.Write "RETURNING oBag to SCOM."
objFile.Close
Call objAPI.Return(oBag)
objRS.Close
Thanks.