C# MQ QDepth而不知道队列管理器名称
我正在尝试检查远程队列的统计信息,但是我需要在不使用queueManagerName的情况下进行连接。我知道这是可能的,但我一直无法找到一个例子或让我的代码工作C# MQ QDepth而不知道队列管理器名称,c#,ibm-mq,C#,Ibm Mq,我正在尝试检查远程队列的统计信息,但是我需要在不使用queueManagerName的情况下进行连接。我知道这是可能的,但我一直无法找到一个例子或让我的代码工作 Hashtable properties = new Hashtable(); properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT); properties.Add(MQC.CHANNEL_PROPERTY, channel);
Hashtable properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
properties.Add(MQC.CHANNEL_PROPERTY, channel);
properties.Add(MQC.HOST_NAME_PROPERTY, host);
properties.Add(MQC.PORT_PROPERTY, port);
MQQueueManager qmgr = new MQQueueManager(queueManager, properties);
try
{
var queueDepth = qmgr.AccessQueue(userQueue,
MQC.MQOO_INPUT_AS_Q_DEF +
MQC.MQOO_FAIL_IF_QUIESCING +
MQC.MQOO_INQUIRE).CurrentDepth;
var maxDepth = qmgr.AccessQueue(userQueue,
MQC.MQOO_INPUT_AS_Q_DEF +
MQC.MQOO_FAIL_IF_QUIESCING +
MQC.MQOO_INQUIRE).MaximumDepth;
if (qmgr.IsOpen)
qmgr.Close();
Console.WriteLine(queueDepth);
}
finally
{
if (qmgr.IsOpen)
qmgr.Close();
}
}
您的示例代码对我来说非常好,并且正确地打印了队列深度。我刚换了一行:
MQQueueManager qmgr = new MQQueueManager(queueManager, properties);
到,只需传递“”(空白)作为队列管理器名称,因为您的要求是不使用队列管理器名称
MQQueueManager qmgr = new MQQueueManager("", properties);