Несогласованное состояние MSMQ после перезапуска - PullRequest
4 голосов
/ 06 апреля 2010

Я вижу действительно странную ошибку, что у меня трудное время отслеживание. Я думаю, что это связано с моей конфигурацией 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 ]

5 голосов
/ 01 июня 2011

Я столкнулся с той же проблемой на 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) Запустите ваше приложение

1 голос
/ 15 декабря 2015

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

0 голосов
/ 17 сентября 2015

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

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

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

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

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

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

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

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

0 голосов
/ 15 марта 2011

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

EDIT После недели, в которой больше не было проблем, я могу с уверенностью сказать, что увеличение оперативной памяти на сервере решило проблему MSMQ «Несогласованное состояние». Имейте в виду, нам сначала нужно было переустановить MSMQ - но проблема так и не вернулась, и до обновления ОЗУ проблема появлялась каждые 2 дня.

...