2017-06-19 188 views
1

我有一个队列'SYSTEM.MANAGED.DURABLE.ABCD *** 109'一直在收取消息,没有人消耗它。 我试图获取其订阅,但得到以下结果,孤儿SYSTEM.MANAGED.DURABLE。*队列中的Websphere MQ

dis sub(*) where (DEST LK 'SYSTEM.MANAGED.DURABLE.ABCD***109') 

AMQ8096: IBM MQ subscription inquired. 
    SUBID(414D5120******************44A0109) 
    SUB(false) 
    DEST(SYSTEM.MANAGED.DURABLE.ABCD***44A0108) 

然后我试图通过列出的订阅ID来查看订阅,

 dis sbstatus(*) where (SUBID EQ '414D5120***44A0109') 
AMQ8099: IBM MQ subscription status inquired. 
    SUB(false) 
    SUBID(414D5120***44A0109) 

我没有订阅命名为“假“。打开时,我无法清除或删除此队列。我也无法查看打开的连接。

dis conn(*) where (objname eq 'SYSTEM.MANAGED.DURABLE.ABCD***44A0108') 
AMQ8461: Connection identifier not found. 

我需要清理&删除此队列以避免磁盘空间问题。

+0

您可以添加当您看到SUB(false)时使用的MQ的版本和平台,并且您是否可以使用runmqsc工具确认上面的输出是可见的(这就是它看起来像的样子,但我不想猜测)。这种行为 - SUB(虚假) - 可重复使用吗?我想深入了解它的底部。 –

+0

您能解决问题吗?我同意SUB(false),我添加到我的答案中的命令应该在内部为您提供MQ认为SUB名称的内容。 – JoshMc

回答

0

您可以删除SUB对象仅与SUBID,尝试使用此命令将其删除:

DELETE SUB SUBID('414D5120***44A0109') 

注意,命令不指定SUB名字,只是Sub关键字。


在你删除它,如果你有兴趣看到的子名称实际上是,你可能想尝试运行以下命令转储订阅:

amqldmpa -m <QueueManager> -c T -f /var/mqm/errors/amqldmpa_topic.out 

里面的文件/var/mqm/errors/amqldmpa_topic.out搜索有问题的SUBID和查找类似这样的文字:

Subscriber entry 
{ 
    SubId (414D5120***44A0109) 
    SubNameString (SUBNAME_HERE) 
    TopicString (TOPIC/STRING/HERE) 
    <more lines of information go here> 
} 

是什么显示了SubNameString场?请注意,在8.0.0.6版本中,我对此进行了反击,似乎为每个字段填充了前导空格和尾部空格,但没有后缀空格的SubId除外。

+0

它显示SUB(false)听起来有缺陷的事实,你不觉得吗? –

+0

@MoragHughson我同意这很奇怪。如果他与IBM开了一个PMR,他们可能会想要一个MQ跟踪,也许是amqldmpa的输出。 – JoshMc

+0

@Vignesh你解决了你的问题吗? – JoshMc

相关问题