У нас есть приложение, которое использует Service Broker для получения уведомлений от SQL Server. Приложение отлично работает, когда у нас не включен SQL Always On и когда мы взаимодействуем с одной БД.
Недавно у нас появился SQL Always On. После переключения с одного SQL Node1 на другой SQL Node2 мы перестаем получать какие-либо уведомления от SQL Node2. Прежде чем мы выполним какое-либо аварийное переключение, мы получаем уведомления, даже если используется SQL Always On. Чтобы снова получать уведомления, мы должны снова отправить сообщения контракта брокера служб, команду ожидания и получения для конкретной службы, очереди и т. Д., Что эквивалентно перезапуску нашей службы.
Я поискал в Интернете и нашел эта статья MSDN о Service Broker на SQL Always On. Я выполнил шаги, упомянутые в этом разделе статьи выше, особенно в разделе Требования к службе в группе доступности для получения удаленных сообщений.
4-й шаг, упомянутый в статье выше: Убедитесь, что msdb содержит маршрут AutoCreatedLocal или маршрут к определенной службе. Но AutoCreatedLocal присутствовал по умолчанию, поэтому я ничего не делал для 4-го шага.
Но все же я не получаю никаких уведомлений после отработки отказа.
Не могли бы вы посоветовать, какие шаги я пропустил или выполнил неправильно, или какие-либо дополнительные элементы, о которых нужно позаботиться.