如何检查队列中是否有消息

Moh*_*igh 0 ibm-mq

我正在使用IBM Websphere MQ.我有队列管理器和队列名称.现在,我想检查队列中是否有任何消息?

我之前没有这方面的工作.请求帮助

如果您需要更多信息,请告诉我们!

谢谢

Stu*_*tLC 8

下面的代码是.NET/amqmdnet - 但您可以尝试在此期间转换它,直到Java开发人员看到您的帖子.

要查看队列中是否有消息,而不实际将其从队列中取出,请在队列上使用MQC.MQOO_BROWSEIBM.WMQ.MQC.MQGMO_BROWSE_FIRST作为选项MQRC_NO_MSG_AVAILABLE如果队列为空,您将获得该消息.

MQMessage queueMessage = new MQMessage();

MQQueueManager queueManager = new MQQueueManager(qmName, channelName, connName);
MQQueuequeue = queueManager.AccessQueue(qName, 
    MQC.MQOO_BROWSE + MQC.MQOO_FAIL_IF_QUIESCING);

MQGetMessageOptions opt = new MQGetMessageOptions();
opt.Options = IBM.WMQ.MQC.MQGMO_BROWSE_FIRST;
queueMessage.CorrelationId = IBM.WMQ.MQC.MQMI_NONE;
queueMessage.MessageId = IBM.WMQ.MQC.MQMI_NONE;
queue.Get(queueMessage, opt);
String sMessage = queueMessage.ReadString(queueMessage.DataLength);
Run Code Online (Sandbox Code Playgroud)

要查看下一条消息的使用IBM.WMQ.MQC.MQGMO_BROWSE_NEXT;

要实际读取队列中的消息,请使用MQC.MQOO_INPUT_SHAREDAccessQueue.