计算msmq子队列中的消息

时间:2011-09-27 14:46:43

标签: count msmq

是否有任何方法(C#或本机)计算消息队列(子队列)中的消息。 使用队列名称“DIRECT = OS:slc11555001 \ private $ \ file-queue; retry”

我想知道子队列中有多少条消息。目前,我可以看到使用管理控制台,该队列中实际上有消息。如果操作系统可以做到,我也应该这样做。

MQMgmtGetInfo返回0xc00e0020(这不是一个记录的错误代码)。

因此我很困惑。 我在这里使用代码: http://functionalflow.co.uk/blog/2008/08/27/counting-the-number-of-messages-in-a-message-queue-in/

2 个答案:

答案 0 :(得分:2)

错误如下(来自http://support.microsoft.com/kb/304287): MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION(0xC00E0020)。 MQMgmtGetInfo将无法理解子队列格式名称。

重试子队列仅作为私有$ \ file-queue队列的逻辑分区而存在。 您可以调用文件队列中的计数,但不能调用其中的子队列。

干杯 约翰

答案 1 :(得分:0)

来自the MSDN page on subqueues:

  

隐式创建子队列,因此只能使用以下API   与子队列一起使用:MQOpenQueue,MQCloseQueue,MQCreateCursor,   MQReceiveMessage,MQReceiveMessageByLookupId,MQHandleToFormatName,   MQMoveMessage和MQPathNameToFormatName。 致电任何其他人   消息队列API返回错误