Ibm mq 如何检查队列中是否有消息
我正在使用IBM Websphere MQ。我有队列管理器和队列名称。现在,我想检查队列中是否有任何消息 我以前没有做过这个。求救 如果您需要更多信息,请告诉我Ibm mq 如何检查队列中是否有消息,ibm-mq,Ibm Mq,我正在使用IBM Websphere MQ。我有队列管理器和队列名称。现在,我想检查队列中是否有任何消息 我以前没有做过这个。求救 如果您需要更多信息,请告诉我 谢谢下面的代码是.NET/amqmdnet-但是您可以尝试同时转换它,直到Java开发人员看到您的帖子 要查看队列上是否有消息,而不实际将其从队列中取出,请在队列上使用MQC.MQOO_BROWSE,并将IBM.WMQ.MQC.MQGMO_BROWSE_FIRST作为选项 如果队列为空,您将获得可用的MQRC\u NO\u MSG\u
谢谢下面的代码是.NET/amqmdnet-但是您可以尝试同时转换它,直到Java开发人员看到您的帖子 要查看队列上是否有消息,而不实际将其从队列中取出,请在队列上使用
MQC.MQOO_BROWSE
,并将IBM.WMQ.MQC.MQGMO_BROWSE_FIRST
作为选项
如果队列为空,您将获得可用的MQRC\u NO\u MSG\u
MQMessage queueMessage=new MQMessage();
MQQueueManager queueManager=新MQQueueManager(qmName、channelName、connName);
MQQueuequeue=queueManager.AccessQueue(qName,
MQC.MQOO_浏览+MQC.MQOO_失败(如果停止);
MQGetMessageOptions opt=新的MQGetMessageOptions();
opt.Options=IBM.WMQ.MQC.MQGMO_BROWSE_FIRST;
queueMessage.CorrelationId=IBM.WMQ.MQC.MQMI_NONE;
queueMessage.MessageId=IBM.WMQ.MQC.MQMI_NONE;
Get(queueMessage,opt);
String sMessage=queueMessage.ReadString(queueMessage.DataLength);
要查看下一条消息,请使用IBM.WMQ.MQC.MQGMO_BROWSE_next
要从队列中实际读取消息,请在AccessQueue上使用
MQC.MQOO\u INPUT\u SHARED
。答案没有显示如何检查MQRC\u NO\u MSG\u是否可用。这是我的解决办法。如果有更好的,请告诉我
try
{
queue.Get(queueMessage, opt);
String sMessage = queueMessage.ReadString(queueMessage.DataLength);
}
catch (MQException err)
{
if (err.ReasonCode.CompareTo(MQC.MQRC_NO_MSG_AVAILABLE) == 0)
return true;
}
适用于Windows计算机
这取决于队列管理器的位置
您可以使用MQUtilities-ih03-pack,它具有rfhUtil.exe(本地Qm)和rfhUtilC.exe(用于远程Qm)
对于本地QM,您需要直接放置适当的值并点击browse,它将显示队列深度
对于远程QM,放置/TCP/(端口号)作为队列管理器名称,放置队列作为队列名称。点击浏览,您将了解队列深度
对于Unix/Ubuntu/Linux版本-有一个名为MQVisualEdit的产品与此类似。请提供哪个开发平台/语言?Java、C#etcYou还可以使用
MQINQ
请求MQIA_CURRENT_Q_DEPTH
整数属性。好处是您可以在MQGET
和MQINQ
上设置不同的安全性。这允许监视用户访问队列的属性,但不一定允许浏览或获取。