Nhibernate + syscache2 + sqlcachedependency - кэш не недействительный в приложении
-
27-10-2019 - |
Вопрос
У меня есть базовое приложение MVC, которое использует nhibernate для OR/M и доступ к данным, Syscache2 для кэша второго уровня в nhibernate и sqlcachedEpendency для логики недействительной кэша. Я полагаю, что у меня есть все правильно (я могу добавить детали, если запрошена), и я вижу, что элементы получают кэширование на стороне приложения.
Однако, если я напрямую обновляю элементы в таблице баз данных, обновление никогда не отправляется обратно в приложение через sqlcachedependency и на Syscache2 в nhibernate. Таким образом, данные обновляются в базе данных и отличаются от того, что находится в кэше в приложении (в nhibernate с syscache2).
Я вижу значение для столбца [Изменение], коррелирующее с правильной таблицей доменов, в таблице [aspnet_sqlcachetablesforchangenotification], поэтому я довольно уверен, что сервисный брокер SQL настроен и настроен правильно. Если я профилю базу данных с помощью SQL Profiler, я увижу, что настройка требует очередей, сервисов и Sprocs, а также для начала разговора для мониторинга.
Не совсем уверен, что проверить дальше. У кого -нибудь была эта проблема раньше, и каково было резолюция?
Решение
Оказывается, основной проблемой было то, что драйвер SQL, который я использовал, не поддерживал партии. После того, как я переключил его обратно на драйвер по умолчанию Nhibernate SQL 2008, все пошло на плавание.