【问题标题】:Orphaned SYSTEM.MANAGED.DURABLE.* queue in Websphere MQWebsphere MQ 中的孤立 SYSTEM.MANAGED.DURABLE.* 队列
【发布时间】:2017-11-22 02:33:54
【问题描述】:

我有一个队列 '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.

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

【问题讨论】:

  • 您能否在看到 SUB(false) 时添加您正在使用的 MQ 版本和平台,您能否确认使用 runmqsc 工具看到了上面的输出(看起来就是这样,但我'宁愿不猜测)。这种行为 - SUB(false) - 可重新创建吗?我想深入了解它。
  • 您能解决问题吗?我同意 SUB(false),我添加到我的答案的命令应该在内部为您提供 MQ 认为 SUB 名称是什么。

标签: ibm-mq publish-subscribe durable-subscription


【解决方案1】:

您可以仅使用 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 除外。

【讨论】:

  • 它显示 SUB(false) 的事实你不觉得有缺陷吗?
  • @MoragHughson 我同意这很奇怪。如果他向 IBM 打开 PMR,他们可能需要 MQ 跟踪,也许还需要 amqldmpa 的输出。
猜你喜欢
  • 2010-11-12
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 2013-10-20
  • 2012-03-19
相关资源
最近更新 更多