Cách lấy tên hàng đợi MQSeries trong .NET mà không có 2068 (How to get MQSeries queuename in .NET without 2068)


問題描述

Cách lấy tên hàng đợi MQSeries trong .NET mà không có 2068 (How to get MQSeries queuename in .NET without 2068)

I have a generic 'datapump' that is running is part of a Windows service; an instance of it exists for each queue that I'm monitoring for new incoming messages from an MQSeries queue.  If the Get method fails, I want to be able to show the name of the queue, so I'm trying to build a debug variable that can be used in the catch handler.  I'm getting a 2068 MQRC_SELECTOR_NOT_FOR_TYPE on the line that sets debugQueueInfo below. 

    debugLocation = "queueGetName";
    debugQueueInfo = "Queue:" + queueIn.RemoteQueueManagerName + ":"
                          + queueIn.RemoteQueueName;

    debugLocation = "queueGetMessage";
    queueIn.Get(mqMessage, mqGetMessageOptions);

How can I get the current queue manager name, and queue name?  The variable queueIn is of type IMB.WMQ.MQQueue, and I'm using the .NET API. 

When the queue was object was built, I used the following: 

queueOptions = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING + MQC.MQOO_INQUIRE + MQC.MQOO_BROWSE; 
MQQueue mqQueue = qmgr.AccessQueue(mqCloneSpecs.queueName, queueOptions);

Based on the doc of the error code for 2068, I thought maybe adding the MQC.MQOO_BROWSE would fix the issue, but it did not. 


參考解法

方法 1:

RemoteQueueManagerName and RemoteQueueName are valid for remote queues only. I think that's the reason why you are getting 2068. MQOO_BROWSE otpion is for getting a message without removing it from the queue. 

You can use Name property to get the queue name, like

debugQueueInfo = "Queue:" + queueIn.Name;

MQQueue class does not have a property to get the queue manager name. You will have to get it from MQQueueManager instance.

(by NealWaltersShashi)

參考文件

  1. How to get MQSeries queuename in .NET without 2068 (CC BY‑SA 3.0/4.0)

#ibm-mq #c#-4.0 #.net






相關問題

將 WebSphere MQ 與 Twisted 一起使用 (Using WebSphere MQ with Twisted)

Websphere MQ 和高可用性 (Websphere MQ and High Availability)

Cara menghapus informasi header pesan di pesan yang dikelompokkan WebSphere MQ saat menerima di .Net client (How to remove the message header informations in WebSphere MQ grouped message while receving in .Net client)

crtmqm:找不到命令 (crtmqm: command not found)

Cách lấy tên hàng đợi MQSeries trong .NET mà không có 2068 (How to get MQSeries queuename in .NET without 2068)

在 MQ Java 客戶端中使用 SSL 時出錯 (Error while using SSL in MQ java client)

檢測客戶端連接上的 MQ 操作 (Detecting MQ operations on client connection)

JMS API 不能瀏覽消息,IBM API 可以 (JMS API cannot browse messages, IBM API can)

Web Sphere + IMessageConsumer + 接收消息 (Web Sphere + IMessageConsumer + receiving messages)

如何配置 IIB 10 以將 monitoring_event 消息作為持久性 MQ 隊列發布? (How to configure IIB 10 to publish monitoring_event messages as persisitent to persistent MQ queue?)

spring boot jms - 在@JmsListner 中發送和接收消息 (spring boot jms - send and receive message inside @JmsListner)

如何使用 JMeter 將 XML 文件發送到 IBM MQ? (How to send the XML file using JMeter to IBM MQ?)







留言討論