'*************************************************************************
' $ScriptName: "PartitioningAndGroomingMonitor" $
'
' Purpose: This script checks for grooming and partiting processes.
'
' $File: PartitioningAndGroomingMonitor.vbs $
'*************************************************************************
Option Explicit
'Declarations
Dim objCN,objRS,strQuery, strCountOfJobsSucceeded, strCountOfJobs
Dim oArgs,oAPI,oBag
Dim strDBServer,strDatabase
Dim strDaysLimitThreshold
Dim ObjError, strMessageToUse
Set ObjError = New Error
On Error Resume Next
'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
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strQuery = "SELECT Count(StatusCode) AS TotalCount " & _
"FROM InternalJobHistory " & _
"WHERE Command = 'Exec dbo.p_GroomPartitionedObjects and dbo.p_Grooming' "
'Query DB
Set objRS = objCN.Execute(strQuery)
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strQuery = "SELECT Count(StatusCode) AS CountOfJobsSucceeded " & _
"FROM InternalJobHistory " & _
"WHERE TimeStarted BETWEEN " & _
"DATEADD(day, -" & strDaysLimitThreshold & ", GETUTCDATE()) " & _
"AND GETUTCDATE() " & _
"AND Command = 'Exec dbo.p_GroomPartitionedObjects and dbo.p_Grooming' " & _
"AND StatusCode = 1 "
'Query DB
Set objRS = objCN.Execute(strQuery)
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strMessageToUse = "Script executed with Process Succeed Count " & strCountOfJobsSucceeded & " from Total Process Count " & strCountOfJobs
call GetState(false, strMessageToUse, strCountOfJobs, strCountOfJobsSucceeded, strDaysLimitThreshold)
WScript.Quit
Sub GetState(strErrorFlag, strMessage, strCountOfJobs, strCountOfJobsSucceeded, strDaysLimitThreshold)
Set oBag = oAPI.CreatePropertyBag()
If strErrorFlag = true Then
Call oBag.AddValue("Error", strMessage)
End If
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