CURDEPTH

IBM.MQ.Queue.CURDEPTH (Rule)

Colelct Current Queue Depth

Element properties:

TargetIBM.MQ.Queue
CategoryPerformanceCollection
EnabledFalse
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedScript.PerformanceProvider Default
WriteToDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Default
WriteToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Default

Source Code:

<Rule ID="IBM.MQ.Queue.CURDEPTH" Enabled="false" Target="IBM.MQ.Queue" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.PerformanceProvider">
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<ScriptName>CollectCURDEPTH.vbs</ScriptName>
<Arguments>$Target/Property[Type="IBM.MQ.Queue"]/QueueManagerName$ $Target/Property[Type="IBM.MQ.Queue"]/QueueName$</Arguments>
<ScriptBody><Script>Dim oArgs
Set oArgs = WScript.Arguments
Dim QueueManagerName, QueueName
QueueManagerName= oArgs(0)
QueueName = oArgs(1)

CURDEPTH = 0

Set objShell = WScript.CreateObject("WScript.Shell")
QueueCommand = "cmd /c echo Display Queue("&amp;QueueName&amp;") CURDEPTH| runmqsc "&amp;QueueManagerName
Set objExecObject = objShell.Exec(QueueCommand)

Do While Not objExecObject.StdOut.AtEndOfStream
MQText = objExecObject.StdOut.ReadLine()
IF INSTR(MQText,"CURDEPTH(") THEN
StatusArray = Split(MQText, "CURDEPTH(")
CURDEPTH= CDBL(TRIM(REPLACE(StatusArray(1),")","")))
END IF
Loop

Dim oAPI, oBag
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Call oBag.AddValue("PerfValue",CURDEPTH)
Call oAPI.Return(oBag)</Script></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
<ObjectName>Queue</ObjectName>
<CounterName>CURDEPTH</CounterName>
<InstanceName>$Target/Property[Type="IBM.MQ.Queue"]/QueueName$</InstanceName>
<Value>$Data/Property[@Name='PerfValue']$</Value>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>