我们与之交易 MQ 数据的供应商之一有一个监视器,显示以下内容:
我自己编写了一个 C# 监视器,每 x 分钟拍摄一次队列深度的快照,但我想知道如何获取排队和出队的消息数。在我看来,这两个统计数据具有不同的性质。对我来说,队列深度是在给定的时间点。上面的报告实际上显示了 5 分钟时间段的“高 Q 深度”。
有人可以向我指出 C#/.NET MQ API 指南中有关如何收集这些统计信息的内容吗?如果没有,什么技巧或工具可以获得这些统计数据?
MQ .NET 对 PCF 具有未记录的“支持”IBM.WMQ.PCF
命名空间。有类似的课程PCFAgent, PCFMessage
等等。这些可用于读取 PCF 消息。
对于静态监控,您可以在队列上打开“队列静态”。如上所述here队列静态消息包括诸如放入队列或从队列检索的消息数量之类的信息。
示例代码:此代码向队列管理器查询名为 Q1 的队列。
public void InquireQmgr()
{
try
{
PCFMessageAgent messageAgent = new PCFMessageAgent("QM");
PCFMessage pcfMsg = new PCFMessage(MQC.MQCMD_INQUIRE_Q);
pcfMsg.AddParameter(MQC.MQCA_Q_NAME, "Q1");
PCFMessage[] pcfResponse = messageAgent.Send(pcfMsg);
int pcfResponseLen = pcfResponse.Length;
for (int pcfResponseIdx = 0; pcfResponseIdx < pcfResponseLen; pcfResponseIdx++)
{
PCFParameter [] parameters = pcfResponse[pcfResponseIdx].GetParameters();
foreach(PCFParameter pm in parameters)
{
Console.WriteLine(pm.Parameter + " - " + pm.GetValue());
}
}
messageAgent.Disconnect();
}
catch(MQException ex)
{
Console.Write(ex);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)