NHibernate + SysCache2 + SqlCacheDependency - Cache pas dans l'application invalidant
-
27-10-2019 - |
Question
I ai une application MVC de base qui utilise NHibernate pour OR / M et l'accès aux données, SysCache2 pour le cache de second niveau dans NHibernate, et SqlCacheDependency pour la logique d'invalidation de la mémoire cache du sous-jacent. Je crois avoir tout configuré correctement (je peux ajouter des détails sur demande) et je peux voir que les articles sont mises en cache sur le se côté de l'application.
Cependant, si les éléments I de mise à jour dans la table de base de données directement, aucune mise à jour est toujours renvoyée à l'application par le SqlCacheDependency et la SysCache2 dans NHibernate. Ainsi, les données sont mises à jour dans la base de données et est différent de ce qui est dans le cache de l'application (en NHibernate avec SysCache2).
Je peux voir la valeur de la [changeId] colonne en corrélation avec la table de domaine correct incrémenter dans le tableau [AspNet_SqlCacheTablesForChangeNotification] donc je suis assez certain que le SQL Service Broker est installé et configuré correctement. Si je profil la base de données avec SQL Profiler, je peux voir les appels d'installation pour les files d'attente, les services et sprocs ainsi que les appels BEGIN CONVERSATION pour la surveillance.
Pas vraiment sûr de ce que pour vérifier prochain. Quelqu'un at-il eu ce problème avant et quelle était la résolution?
La solution
Il se trouve que le principal problème était le pilote sql j'utilisais ne prennent pas en charge lots. Une fois que je l'ai rallumé à la NHibernate par défaut SQL Server 2008, tout pilote a swimingly.