Avaliable

PostgreMP.Windows.ConAvaliableMonitor (UnitMonitor)

Is postgres Avaliable?

Element properties:

TargetPostgreMP.Windows.Application
Parent MonitorSystem.Health.AvailabilityState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.TimedScript.TwoStateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Postgres Is Not Avaliable
Can`t connect to postgres on {0}
RunAsDefault

Source Code:

<UnitMonitor ID="PostgreMP.Windows.ConAvaliableMonitor" Accessibility="Public" Enabled="true" Target="PostgreMP.Windows.Application" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.TimedScript.TwoStateMonitorType" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="PostgreMP.Windows.ConAvaliableMonitor_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId8b56c3772bda4ba1b14175de8e6ea025" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="UIGeneratedOpStateId62c390cb131249b8b4714636b504a89d" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
<ScriptName>Avaliability.vbs</ScriptName>
<Arguments/>
<ScriptBody><Script>Option Explicit
On Error Resume Next

Dim conn
Set conn= CreateObject("ADODB.Connection")
conn.Open "Provider=MSDASQL.1;Data Source=PostgreSQL30"

Dim rs
Set rs = CreateObject("ADODB.recordset")

rs.Open "SELECT version()", conn

Dim value
value = rs.Fields(0).value
rs.close
conn.Close

Dim oAPI, oBag
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
If value&lt;&gt;Empty Then
Call oBag.AddValue("Status","OK")
Else
Call oBag.AddValue("Status","-1")
End If
Call oAPI.Return(oBag)
</Script></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">OK</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OK</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>