C# MQ QDepth而不知道队列管理器名称

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);

我正在尝试检查远程队列的统计信息,但是我需要在不使用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();
    }
} 

您的示例代码对我来说非常好,并且正确地打印了队列深度。我刚换了一行:

MQQueueManager qmgr = new MQQueueManager(queueManager, properties);
到,只需传递“”(空白)作为队列管理器名称,因为您的要求是不使用队列管理器名称

MQQueueManager qmgr = new MQQueueManager("", properties);