Существует несколько различных проблем, которые могут вызвать это. Один из них - если есть явно определенные CLUSSDR
каналы, указывающие на не-хранилище QMgr. Это приводит к тому, что сообщения репозитория поступают в не-repos QMgr, которые могут привести к смерти его репозитория amqrrmfa
. Другое дело, что было несколько APARS (например, this one), что может привести к вымиранию процесса. Решения, соответственно, должны исправить проблемы с конфигурацией или применить последний пакет Fix Pack. Еще одна проблема, реже встречающаяся, заключается в том, что сообщение новому QMgr будет выходить из строя до того, как новый QMgr сможет разрешить локальный QMgr. В этом случае REFRESH
фактически не приводит к удалению удаленного QMgr, он просто предоставляет время для завершения разрешения.
Отладка включает в себя выделение возможных причин. Убедитесь, что запущен amqrrmfa
. Убедитесь, что у всех QMgrs без репозитория есть один и ТОЛЬКО один явно определенный канал CLUSSDR. Убедитесь, что все репозитории имеют один и ТОЛЬКО один явно определенный CLUSSDR для каждого другого репозитория. Если используются перекрывающиеся кластеры, обязательно НЕ перекрывайте каналы. Это означает отказ от названий каналов, таких как TO.QMGR
и предпочитающих имена, такие как CLUSTER.QMGR
. Проверьте это, застраховав каналы, не используя атрибут CLUSNL
и вместо этого используйте атрибут CLUSTER
. Наконец, примирите объекты как в репозиториях, так и в не-репозитории, выпуская DIS CLUSQMGR(*)
и DIS QCLUSTER(*)
. Репозитории должны иметь идентичные инвентаризации объектов. Если это не так, есть проблема. Нерепозиторий должен иметь запись для каждого QMgr, с которым он ранее разговаривал.
Одна вещь, которую я видел в прошлом, заключалась в том, что администратор назначил REFRESH CLUSTER
. Он думал, что это нужно сделать, чтобы исправить кластер, поэтому почему бы не запустить его на регулярной основе? Поэтому он планировал, что он будет работать ежедневно. Затем каждую ночь он заставлял QMgr забывать о других QMgrs в кластере, и в первый раз, когда приложение разрешало удаленный QMgr каждый день, раздавался трафик репозитория. Это вызвало достаточно задержки, что каждое утро было около 2087 ошибок. Не то, чтобы вы сделали. :-)
Что именно вы подразумеваете под «диспетчером очереди, часто теряет связь с хранилищем?» Канал идет, чтобы повторить попытку? Репозиторий больше не отображается в 'DIS CLUSQMGR'? Член кластера больше не отображается в репозитории 'DIS CLUSQMGR'? Какая версия WMQ и что делают журналы ошибок, когда это происходит? –
Здравствуйте, Роб, я не делал эту проверку во время проблемы. Я просто пытался поставить тестовый msg на удаленный q, и он не работает с кодом ошибки MQRC 2087, даже если очередь существует на удаленном сервере. После обновления кластера он работает нормально. Я сделаю эту проверку, когда снова окажусь перед лицом. У нас есть наш репозиторий в MQV7 и на всех других серверах на MQV6. – Vignesh
Каналы не находятся в состоянии повторной попытки. – Vignesh