Ibm mq 使用.Net的WebSphere MQ类查找XMIT队列深度

Ibm mq 使用.Net的WebSphere MQ类查找XMIT队列深度,ibm-mq,Ibm Mq,我想使用.Net类获取传输队列(XMIT队列)的队列深度,有人能帮我提供一个特定的链接/伪代码或.Net类/API来识别XMIT队列深度吗。我已经浏览了.Net API,但没有找到有关XMIT队列的任何信息。您可以使用MQ.Net PCF接口查询队列属性。下面是示例代码片段 注意:MQ.NET PCF接口是未记录的接口,可能不受支持。您需要咨询IBM 公共静态无效查询队列() { PCFMessageAgent messageAgent=null; 尝试 { //创建到队列管理器的连接 mess

我想使用.Net类获取
传输队列
XMIT队列)的
队列深度
,有人能帮我提供一个特定的链接/伪代码或.Net类/API来识别XMIT队列深度吗。我已经浏览了.Net API,但没有找到有关XMIT队列的任何信息。

您可以使用MQ.Net PCF接口查询队列属性。下面是示例代码片段

注意:MQ.NET PCF接口是未记录的接口,可能不受支持。您需要咨询IBM

公共静态无效查询队列()
{
PCFMessageAgent messageAgent=null;
尝试
{
//创建到队列管理器的连接
messageAgent=newpcfmessageagent(“QM3”);
//生成查询命令以查询队列的属性
PCFMessage pcfMsg=新的PCFMessage(MQC.MQCMD_INQUIRE_Q);
pcfMsg.AddParameter(MQC.MQCA_Q_名称,“TO.QM2”);
//发送请求和接收响应
PCFMessage[]pcfResponse=messageAgent.Send(pcfMsg);
//处理和打印响应。
int pcfResponseLen=pcfResponse.Length;
对于(int-pcfResponseIdx=0;pcfResponseIdx
Hi Shashi,谢谢您的回复。我在寻找一个类似XMIT queue的建议,它只不过是一个本地队列,位于远程队列的同一队列管理器中。我们可以通过这种方式来标识队列深度,获取远程队列名称的别名队列名称,并为此标识XMIT队列名称,然后获取相应XMIT队列的队列深度吗?。对不起,我对你的问题不是很清楚。如果您具有XMIT所在的队列名称和队列管理器名称,则可以通过连接到该队列管理器来确定深度。
    public static void InquireQueue()
    {
        PCFMessageAgent messageAgent = null;
        try
        {
            // Create connection to queue manager
            messageAgent = new PCFMessageAgent("QM3");

            // Build Inquire command to query attributes a queue
            PCFMessage pcfMsg = new PCFMessage(MQC.MQCMD_INQUIRE_Q);
            pcfMsg.AddParameter(MQC.MQCA_Q_NAME, "TO.QM2");

            // Send request and receive response
            PCFMessage[] pcfResponse = messageAgent.Send(pcfMsg);

            // Process and print response.
            int pcfResponseLen = pcfResponse.Length;
            for (int pcfResponseIdx = 0; pcfResponseIdx < pcfResponseLen; pcfResponseIdx++)
            {
                PCFParameter[] parameters = pcfResponse[pcfResponseIdx].GetParameters();
                foreach (PCFParameter pm in parameters)
                {
                    // We just want to print current queue depth only
                    if (pm.Parameter == MQC.MQIA_CURRENT_Q_DEPTH) 
                        Console.WriteLine("Queue Depth" + " - " + pm.GetValue());
                }
            }
        }
        catch (PCFException pcfEx)
        {
            Console.Write(pcfEx);
        }
        catch (MQException ex)
        {
            Console.Write(ex);
        }
        finally
        {
            if (messageAgent != null)
                messageAgent.Disconnect();
        }
    }