Использование SQLDependency/SqlNotificationRequest, чтобы несколько экземпляров одного и того же приложения получали одни и те же уведомления?

Недавно я начал изучать это, имея очень ограниченное представление о том, что ASP.NET Cache может как-то использовать SqlCacheDependency для аннулирования кеша при изменении таблицы (или результатов запросов). Это привело меня к SQLDependency и < классы href="http://msdn.microsoft.com/en-us/library/system.data.sql.sqlnotificationrequest.aspx" rel="nofollow noreferrer">SqlNotificationRequest. Хотя детали класса SqlNotificationRequest по-прежнему ускользнуть от меня Мне удалось немного узнать о SQLDependency класс. Метод Start требует более высоких разрешений, чем я смогу дать пользователь, под которым мой процесс будет подключаться к базе данных, поэтому я провел небольшое исследование и успешно создал Queue и Service Broker, которым было мое тестовое приложение можно использовать для получения уведомлений.

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

Может ли кто-нибудь подтвердить, что это так, или, может быть, даже предложить какие-то альтернативные решения?

Кроме того, мы используем SQL Server 2005.


person drs9222    schedule 14.09.2010    source источник


Ответы (1)


В случае SQLDependency/SQLNotificationRequest вам требуется отдельная очередь для каждого процесса. Если ваши разные процессы прослушивают одну и ту же очередь, уведомление о событии не гарантируется. Но это так, как сейчас.

person Community    schedule 28.01.2011