問題タブ [syscache2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nhibernate - NHibernate キャッシングが匿名型で機能しない
次のクエリを機能させようとしています。
これは、キャッシュがオフになっている場合に機能しますが、キャッシュが有効になっていると、次の例外が発生します。
System.InvalidCastException: タイプ 'Baz' のオブジェクトをタイプ 'System.Object[]' にキャストできません。
残りのスタック トレースは次のとおりです。
これがNHibernateの制限なのか、それとも何か間違っているのか、誰にも分かりますか?
sql-server-2005 - NHIbernateSysCache2およびSQLDependencyの問題
SQLServer2008でenable_brokerをSQLDepndencyを使用するように設定しました
次のように、キャッシュ領域でSyscache2を使用するように.Netアプリを構成しました。
私のHbmファイルは次のようになります。
BlogEntryに対するクエリに対してクエリキャッシュも有効にしています
最初にクエリを実行すると、予想どおり、結果は2次キャッシュにキャッシュされます。
ここでblog_entriesの行を変更すると、すべてが期待どおりに機能し、キャッシュの有効期限が切れます。次のメッセージが表示されます。
私はそれを期待しています。次のページのリクエストで、クエリとその結果がキャッシュに保存されます。ただし、それ以上何も変更されていなくても、キャッシュはすぐに再び無効になります。
基になるデータに変更を加えることなく、キャッシュはその後毎回常に無効になります。アプリケーションを再起動するだけで、キャッシュを再び動作させることができますが、データが最初にキャッシュされたときだけです(ここでも、キャッシュが最初にダーティになると、キャッシュが再び機能しなくなります)
誰かがこの問題を見たり、これが何であるかについて何か考えを持っていますか?syscache2はSQLDependencyonChangeイベントを処理する必要があると考えていましたが、これはおそらく実行されています。そのため、SQLServerがSQLDependencydepedencyChangedを送信し続ける理由がわかりません。
ありがとう
nhibernate - NHibernateで第2レベルのキャッシュ全体をクリアする方法
コードを介してNHibernateの第2レベルのキャッシュ全体をクリアしたいと思います。使用されているキャッシュプロバイダーに依存しない、これを行う方法はありますか?(同じアプリケーション内でmemcacheとsyscacheの両方を使用しているお客様がいます)。
データベースの外部で変更が発生した可能性があるため、キャッシュ全体をクリアしたいと考えています(また、影響を受けたテーブル/エンティティについては保証されていないため、最悪の事態を想定する必要があります)。
c# - 流暢な nhibernate と syscache2 でキャッシュ領域を構成する方法
流暢な nhibernate を使用してキャッシュ領域を実装しようとしてきましたが、これまでに次のことを行いました。
1) Fluently.Configure() でキャッシュをセットアップします。
2) ClassMap を変更してキャッシュを有効にし、選択した領域を設定しました。
上記を正しく行ったことを願っていますが、各リージョンの優先度とキャッシュ期間をどこで構成するかがわかりません。その方法を知っていますか?上記のコードに欠陥を見つけた場合は、フィードバックをいただければ幸いです。
asp.net-mvc - マルチサーバー環境でSyscacheをnhibernateの第2レベルキャッシュとして使用する際に問題はありますか?
単一のWebサーバー環境からマルチWebサーバー環境に移行したばかりで、過去にnhibernateとsyscacheの第2レベルのキャッシュを使用していました。
分散型のnhibernateの第2レベルのキャッシングソリューション(memcache、velocityなど)に移行する必要があることはわかっていますが、(さまざまな理由から)その移行には少し時間がかかります。
私の現在の状態(今のところマルチWebサーバー環境でSyscacheレベル2キャッシュを使用している)について特に心配する必要があることはありますか、それとも分散ソリューションほどパフォーマンスが良くないことはありますか(基本的に各Webサーバーのローカル並列キャッシュとサーバー間の集中キャッシュ)。
私は基本的に、これがこのセットアップに問題があるのか、それとも可能な限り速くないのかを理解しようとしています。
sql-server-2008 - NHibernate + SysCache2+SqlCacheDependency-アプリケーションでキャッシュが無効にならない
OR / MおよびデータアクセスにNHibernateを使用し、NHibernateの第2レベルキャッシュにSysCache2を使用し、基盤となるキャッシュ無効化ロジックにSqlCacheDependencyを使用する基本的なMVCアプリケーションがあります。すべてが正しくセットアップされており(要求された場合は詳細を追加できます)、アプリケーション側でアイテムがキャッシュされていることがわかります。
ただし、データベーステーブルのアイテムを直接更新すると、更新がSqlCacheDependencyを介してアプリケーションに返送されたり、NHibernateのSysCache2に返送されたりすることはありません。そのため、データはデータベースで更新されており、アプリケーションのキャッシュにあるものとは異なります(NHibernate with SysCache2)。
[AspNet_SqlCacheTablesForChangeNotification]テーブルで増分する正しいドメインテーブルに相関する[changeId]列の値を確認できるので、SQLServiceBrokerが正しくセットアップおよび構成されていることをかなり確信しています。SQL Profilerを使用してデータベースをプロファイリングすると、キュー、サービス、およびsprocのセットアップ呼び出しと、監視のためのBEGINCONVERSATION呼び出しを確認できます。
次に何をチェックすればよいかよくわかりません。誰かが以前にこの問題を抱えたことはありますか?解決策は何でしたか?
model-view-controller - MVC アプリケーションでの SysCache2 と FluentNhibernate
MVC アプリケーションの SysCache/SysCache2 に問題があります。私の設定は正しいようです。ウェブ上の無数の例と同じように設定しました。
私のクラス Cache.Region("LongTerm").NonStrictReadWrite().IncludeAll();
では、次のように記述しました。これは、アプリケーションキャッシュ用に作成したテストです。
最初のステートメントは、セッション ファクトリの統計 (たとえば 230 レコード) に見られるようにキャッシュされます。私がそれを理解していれば、以下の2番目のステートメントはデータベースではなくキャッシュにヒットするはずです。ここでの問題は、とにかく DB に移動することです。プロファイラーで 100% 確実であることを確認しました。
ここで何が間違っているのかわかりません。誰にもアイデアがありますか?
.net - NHibernateキャッシュでフェッチされた子コレクションを作成するにはどうすればよいですか?
次のように、子コレクションをフェッチする非常に単純な条件クエリがあります。
NH Profを使用して、コールドキャッシュを使用してデータベースへのラウンドトリップが(予想どおりに)1回だけ行われることを確認しました。ただし、連続して実行すると、次のようOrder
に、キャッシュからのみを取得し、グラフ内のすべての子エンティティに対してSELECT(N + 1)を使用してデータベースにアクセスします。
などなど。明らかに、クエリまたはグラフ全体をキャッシュするのではなく、ルートエンティティのみをキャッシュします。最初の「キャッシュされたクエリ」行には、実際にはjoin
想定されているすべての条件が含まれています。明らかに、エンティティだけでなく、クエリ自体も正しくキャッシュされています。
SysCache、SysCache2、さらにはHashTableキャッシュプロバイダーを使用してこれを試しましたが、常に同じ動作をするようです(NHバージョン3.2.0)。
グーグルは、次のような多くの古代の問題を明らかにしました。
- NH-195:子コレクションが第2レベルのキャッシュに保存されていません
- Syscache2第2レベルのキャッシュ:子coll。再クエリされたオブジェクト
- SysCacheとSysCache2の奇妙な違い
- NHibernate –不適切に適用されるキャッシング戦略に注意してください(Ayende-もちろん、彼はそれを修正する方法ではなく、何をすべきでないかについて言及するだけです...)
ただし、これらはすべてかなり前に修正されたようであり、使用するプロバイダーに関係なく、同じ悪い動作が発生します。
SysCacheとSysCache2に関するnhibernate.infoのドキュメントを読みましたが、不足しているものはないようです。cacheRegion
クエリに関係するすべてのテーブルのファイルに行を追加しようとしましWeb.config
たが、何も変更されません(そして、これらの要素はキャッシュを無効にするだけなので、とにかく問題にはなりません)。
すべてが修正/解決されたように見えるこれらの超古い問題のすべてで、これはおそらくNHibernateのバグではない可能性があると思います、それは私が間違っていることであるに違いありません。しかし、何ですか?
NHibernateのフェッチ命令を第2レベルのキャッシュと組み合わせるときに特別なことをする必要がありますか?ここで何が欠けていますか?
nhibernate - Fluent NHibernate Syscache2 キャッシュの有効期限
流暢で syscache2 を使用する WCF サービスに取り組んできました。私は、現在のジレンマに関する SO に関するすべての記事をほとんど読みました。運がなかった。
二次キャッシュの有効期限を設定しようとしています。設定した値は無視されるようで、デフォルト値の 5 分がキャッシュの期限切れに使用されます。
流暢な構成:
注: contextClass は、構成に渡される値を保持する単なる記述子クラスです。
app.config ファイルも次のように設定しています。
リージョンを使用する syscache セクションを持つ app.config のバリアントがありましたが、それも機能しませんでした。
アイデアに関する提案はありますか?
ありがとう
nhibernate - NHibernate SysCacheを非Webアプリケーションで使用できますか?
NHibernate(3)とSQL Server 2008を使用しているWindowsサービスがあります。WPFクライアントは、DataAccessを使用するためにWCFを介してこのサービスに接続しています。私の質問は次のとおりです。このシナリオでSysCacheまたはSysCache2を使用できますか?それともWeb-/ ASP.NET-アプリケーションでのみ使用できますか?