1

我有一个队列'SYSTEM.MANAGED.DURABLE.ABCD***109'一直在接收消息,没有人使用它。我试图获得它的订阅,但得到了以下结果,

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)

我没有名为 "false" 的订阅。我无法清除或删除此队列,因为它已打开。我也无法查看打开的连接。

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

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

4

1 回答 1

0

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

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 除外。

于 2017-06-19T20:24:37.360 回答