Назад | Перейти на главную страницу

Как включить отключенное уведомление о событии

У меня есть сценарий, в котором я использую внешнее уведомление для обработки документов, отправляемых со всего военно-морского флота, обычно у меня нет проблем, но всего несколько дней назад администратор изменил пароли, и моя обработка очереди не удалась, и я откатил транзакцию с этим кодом C #:

catch (Exception) {TransporterService.WriteEventToWindowsLog (AppName, «Откат транзакции:», ОШИБКА); broker.Tran.Rollback (); перерыв; }

после чего моя целевая очередь будет продолжать заполняться, но ничего не будет для внешней очереди активации. Отключается ли уведомление о событии после отката транзакции? Должен ли я сделать здесь broker.EndDialog при перехвате моего исключения?

Кроме того, после того, как мое уведомление о событии отключено (если это действительно происходит), как мне повторно его задействовать? Мне нужно отбросить его и воссоздать? Заранее благодарим за любую помощь, мне очень нравится Service Broker и его работа, за исключением этой ошибки, которую я надеюсь исправить в ближайшее время.

Скорее всего, ваша очередь Service Broker была отключена из-за обнаружение опасного сообщения (в результате того, что ваш блок catch выполняется 5 раз подряд). После устранения основной проблемы (неправильного пароля) вам нужно будет только повторно включить очередь:

ALTER QUEUE [name] WITH STATUS = ON;

Я не думаю, что нужно что-то делать с самим уведомлением о событии.

Если вы хотите быстро обнаруживать такие ситуации в будущем, вы можете настроить уведомление о событии для события QUEUE_DISABLED, чтобы оно уведомляло вас, когда очередь отключается.