Обратный вызов BizTalk WCF-SQL с уведомлением о получении возвратил ошибку
Я пытаюсь получить уведомления SQL для работы с BizTalk, но я борюсь за одну точку.
Привязка получателя заключается в следующем:
SQL Server поддерживает уведомления, и строка подключения верна.
Когда я запускаю Receivelocation, он работает ровно один раз правильно, но когда я отключаю его и снова запускаю, я получаю следующую ошибку в журнале событий.
- Механизму обмена сообщениями не удалось добавить местоположение приема "RL.MDM.SQL" с URL-адресом "mssql://.//Database?InboundId=GetNewMDMChanges" к адаптеру "WCF-SQL". Причина: "Microsoft.ServiceModel.Channels.Common.TargetSystemException: обратный вызов уведомления возвратил ошибку. Информация = Неверный. Источник = Оператор. Тип = Подписаться.
Я не могу снова запустить Receivelocation, пока не выполню следующую команду в базе данных, чтобы включить посредника.
alter database MDMDEV set enable_broker with rollback immediate;
Странная вещь здесь, когда я проверяю, включен ли брокер, прежде чем я выполню команду выше, я вижу, что брокер действительно все еще включен.
Таким образом, команда для включения посредника исправляет мою проблему только для одного другого уведомления, а затем я должен сделать это снова.
Кто-нибудь когда-либо имел эту проблему или может сказать мне, что я делаю неправильно? Заранее спасибо.
1 ответ
Что касается функции уведомлений в целом, я рекомендую не использовать ее.
Как в SQL Server, так и в Oracle функция уведомлений довольно хрупка и прекратит получать событие без предупреждения или ошибки. Когда это происходит, единственным способом восстановления является отключение / включение местоположения получения.
По сути, я нашел его недостаточно надежным для использования в производственных приложениях.
Если вы или ваша организация владеете базой данных, опрос [+ триггеры при необходимости] надежен на 100%.
В этой статье описываются несколько различных сценариев опроса: BizTalk Server: шаблоны SQL для опроса и пакетного извлечения