Несогласованное состояние MSMQ после перезапуска

Я вижу действительно странную ошибку, которую мне трудно отследить. Я думаю, что это связано с моей конфигурацией Rhino ESB, хотя я не уверен, что RSB на самом деле вызывает его, поэтому я решил спросить и посмотреть, сталкивался ли кто-нибудь еще с этим при любом другом использовании MSMQ.

Я использую RSB в качестве клиента в веб-приложении (ASP.NET, клиент работает в фоновом режиме). Клиент общается со службой Windows через привязку MSMQ для RSB. Перезапуск службы никогда не оказывает влияния на MSMQ, как и перезапуск IIS вручную. Однако всякий раз, когда я фактически перезагружаю сам компьютер, MSMQ всегда отказывается запускать резервное копирование, утверждая, что "очередь находится в несогласованном состоянии". Попытка запустить MSMQ вручную приводит к той же ошибке, что делает установку MSMQ совершенно бесполезной. Единственный способ решить эту проблему - удалить и переустановить MSMQ.

Единственная информация, которую я нашел через всемогущего Google, - это ссылки на проблему в MSMQ 2.0 (эта проблема возникает в MSMQ 4.0). Я убедился, что Dispose вызывается на шине при завершении работы как в сервисе, так и на веб-сайте.

У кого-нибудь есть идеи, почему это может происходить? Спасибо!

4 ответа

Я столкнулся с той же проблемой на Windows 2008 Server (виртуальная машина). Хотя окружающая среда не была связана с инструментами носорога.

Ошибка в журнале событий: "Служба очереди сообщений не может запуститься, поскольку очередь находится в несогласованном состоянии. Дополнительные сведения см. В статье 827493 базы знаний Майкрософт на support.microsoft.com".

Как указал Рой, это происходит каждые 2-3 дня. Каждый раз мы следуем приведенным ниже инструкциям для восстановления - вместо этого переустанавливаем MSMQ.

1) Остановите все приложения и службы, которые используют MSMQ.
2) Убить mqsvc.exe из диспетчера задач
3) Перейдите в C:\Windows\System32\msmq\storage и удалите все файлы.mq.
4) Запустите службу MSMQ
4) Запустите ваше приложение

В моем сценарии я смог исправить ошибку "очередь находится в несогласованном состоянии" после перезапуска службы MSMQ. Оказывается, имя компьютера было слишком длинным, поэтому изменение имени компьютера на имя длиной менее 15 символов устранило проблему.

Моя команда испытывает похожую проблему, MSMQ получает вызов от NSB 2.5. Эта проблема возникла недавно после того, как Infrastructure перенес нашу виртуальную машину на другой физический сервер и по какой-то причине снизил объем доступной оперативной памяти. Мы думаем, что проблема может быть связана с памятью.

РЕДАКТИРОВАТЬ После недели больше никаких проблем с этим, я могу с уверенностью сказать, что повышение ОЗУ на сервере решило проблему нашего "MSMQ" Несогласованное состояние ". Имейте в виду, нам сначала пришлось переустановить MSMQ - но проблема так и не вернулась, и до обновления ОЗУ проблема появлялась каждые 2 дня.

Обычно в Windows 2008RC2 MSMQ не может запускаться после перезагрузки.

Два обычных вопроса для меня:

"Служба очереди сообщений не может быть запущена, поскольку очередь находится в несогласованном состоянии" и "Служба зависимостей не существует или помечена для удаления"

Иногда помогло следующее (хотя мы ищем более надежный ответ)

  1. переименовать папку msmq в msmq_old
  2. чистая остановка wuauserv
  3. стоповые биты
  4. Удалить каталог "%windir%\softwaredistribution"
  5. перезагружать

Это происходило 5 раз в этом году, и каждый раз происходило множество вышеперечисленных с большим количеством перезагрузок.

Иногда мы возвращаемся к Удалить функцию / Добавить функцию, однако вы можете оказаться в курсе событий. При загрузке происходит откат в службе обновления Windows, поэтому компонент никогда не удаляется и проблема не устраняется.

Следующие шаги могут помочь с этим.

Другие вопросы по тегам