Я проводил некоторые исследования и вижу большую часть системы для этой системы, однако я не уверен, как сервер sql знает, когда отправлять сообщение любым слушателям (приложениям), когда данные в таблице изменяются, для пример. Я начну с объяснения того, что я понимаю, вплоть до того, что я заблудился.
1) Компонент Service Broker должен быть включен в базе данных и должны быть установлены некоторые разрешения.
2) Схема базы данных должна быть развернута.
3) Используя aspnet_regsql.exe, включите зависимость кэша sql для базы данных и таблиц, для которых необходимо кэшировать данные (на этом шаге создается таблица для отслеживания изменений и триггеры в таблицах для сбора изменений и увеличения значения в этой таблице) .
4) Установите зависимость кэша sql в приложении .net. Например, в веб-приложении вам необходимо добавить значения конфигурации для времени опроса, строки подключения и т. Д .; запустите / остановите зависимость в вашем global.asax.cs, а затем добавьте зависимости кеша sql при добавлении элементов в кеш.
4a) Часть того, что происходит при запуске зависимости, состоит в том, что инфраструктура настроена для очереди, службы и элемента обработки для последующего взаимодействия и очистки. Используя Sql Query Profiler, вы можете видеть, как установлено соединение и в службе настроен канал связи, чтобы приложение получало сообщения с сервера sql.
5) Вот где я запутался. На данный момент я кэшировал элемент в кэше моего приложения со ссылкой на зависимость кэша sql от базовой таблицы, чтобы мое приложение могло получать изменения в случае изменения этой строки. Если я вручную запускаю обновление для этой строки, я вижу, что срабатывает триггер, а значение в таблице отслеживания увеличивается на 1. Однако я не вижу никаких сообщений, возвращающихся в приложение, ничего в профилировщике запросов sql, ни элемент удален из кеша Я также не вижу ничего в очередях базы данных (ни динамическая очередь приложений, ни стандартные очереди ошибок / передач)
У меня вопрос: что наблюдает за этой таблицей отслеживания в базе данных, чтобы можно было отправлять сообщения обратно в зависимости sql, которые касаются изменений в этих данных?
Любая помощь очень ценится ... Я просматривал множество онлайн-ссылок и не могу найти конкретного объяснения этому.