我正在尝试检查远程队列的统计信息,但是我需要在不使用queueManagerName的情况下进行连接。我知道有可能但是我找不到一个例子或让我的代码工作?
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();
}
}
答案 0 :(得分:1)
您的示例代码对我来说非常合适,并且可以正确打印队列深度。我只是更改了这一行:
MQQueueManager qmgr = new MQQueueManager(queueManager, properties);
to,只是将“”(空白)作为队列管理器名称传递,因为您的要求是不使用队列管理器名称。
MQQueueManager qmgr = new MQQueueManager("", properties);