Потерянная очередь SYSTEM.MANAGED.DURABLE.* В Websphere MQ
У меня есть очередь '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)
Затем я попытался просмотреть подписку с помощью идентификатора подписки в списке,
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.
Мне нужно очистить и удалить эту очередь, чтобы избежать проблемы с дисковым пространством.
1 ответ
Вы можете удалить объекты 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, который не имеет конечного пробела.