1

OR / MおよびデータアクセスにNHibernateを使用し、NHibernateの第2レベルキャッシュにSysCache2を使用し、基盤となるキャッシュ無効化ロジックにSqlCacheDependencyを使用する基本的なMVCアプリケーションがあります。すべてが正しくセットアップされており(要求された場合は詳細を追加できます)、アプリケーション側でアイテムがキャッシュされていることがわかります。

ただし、データベーステーブルのアイテムを直接更新すると、更新がSqlCacheDependencyを介してアプリケーションに返送されたり、NHibernateのSysCache2に返送されたりすることはありません。そのため、データはデータベースで更新されており、アプリケーションのキャッシュにあるものとは異なります(NHibernate with SysCache2)。

[AspNet_SqlCacheTablesForChangeNotification]テーブルで増分する正しいドメインテーブルに相関する[changeId]列の値を確認できるので、SQLServiceBrokerが正しくセットアップおよび構成されていることをかなり確信しています。SQL Profilerを使用してデータベースをプロファイリングすると、キュー、サービス、およびsprocのセットアップ呼び出しと、監視のためのBEGINCONVERSATION呼び出しを確認できます。

次に何をチェックすればよいかよくわかりません。誰かが以前にこの問題を抱えたことはありますか?解決策は何でしたか?

4

1 に答える 1

1

主な問題は、私が使用していたSQLドライバーがバッチをサポートしていなかったことでした。デフォルトのnhibernatesql2008ドライバーに戻すと、すべてが順調に進みました。

于 2011-10-04T01:51:49.760 に答える