次のエラーに関する多くの問題に気付いた Web アプリケーションがあります。
NHibernate.Cache.ReadWriteCache - An item was expired by the cache while it was locked (increase your cache timeout)
これらの行の後には、DB に永続化されるはずのランダムなエンティティが続きます。時折、これらが永続化に失敗したり、設定されるべき特定のフィールドが不足しているように見えたりして、大きな頭痛の種になります。
最も奇妙なことは、第 2 レベルのキャッシュがオフになっている場合でもこれが表示されることです。これには驚かされます。これが実行されているサーバーには 64 GB の RAM があり、使用量は通常 55 ~ 60 GB 程度です。これは複数のサイトをホストしているためです。
第 2 レベルのキャッシュがオフになっているはずなのに、なぜこれが表示されるのですか? 一次キャッシュはこのように期限切れになるべきではありませんよね? また、特定のエンティティに対して期限切れにならないように CachePriority を設定しようとしましたが、それでもログに表示されます。
私は何を間違っていますか?私は誤解されていますか?