NHibernate + SysCache2 + SqlCacheDependency - кэш не аннулируется в приложении - PullRequest
1 голос
/ 08 сентября 2011

У меня есть базовое приложение MVC, которое использует NHibernate для OR / M и доступа к данным, SysCache2 для кэша второго уровня в NHibernate и SqlCacheDependency для базовой логики аннулирования кэша. Я считаю, что у меня все настроено правильно (я могу добавить детали, если требуется), и я вижу, что элементы кэшируются на стороне приложения.

Однако, если я обновляю элементы в таблице базы данных напрямую, обновление никогда не отправляется обратно в приложение через SqlCacheDependency и в SysCache2 в NHibernate. Таким образом, данные обновляются в базе данных и отличаются от того, что находится в кэше в приложении (в NHibernate с SysCache2).

Я вижу значение для столбца [changeId], соответствующее правильному приращению таблицы доменов в таблице [AspNet_SqlCacheTablesForChangeNotification], поэтому я вполне уверен, что SQL Service Broker настроен и настроен правильно. Если я профилирую базу данных с помощью SQL Profiler, я вижу вызовы установки для очередей, служб и sprocs, а также вызовы BEGIN CONVERSATION для мониторинга.

Не совсем уверен, что проверять дальше. У кого-нибудь была эта проблема раньше и каково было решение?

1 Ответ

1 голос
/ 04 октября 2011

Оказалось, что основной проблемой был драйвер sql, который я использовал, не поддерживал пакеты.Как только я переключил его обратно на драйвер nhibernate sql 2008 по умолчанию, все пошло гладко.

...