0

NHibernate セッションを ThreadLocal 内に保存することは理にかなっていますか?それがスレッド セーフであり、セッションの遅延読み込みの問題を解決すると想定しても安全ですか? また、スレッドが実行されている限り、セッションが利用可能であると想定しても安全ですか? スレッドに関しては、HttpRequet について話しています。

さらに、NHibernate のセッションが不足することはありますか? セッションの最大数はありますか? スレッド数が多い場合でも問題ありませんか?

4

1 に答える 1

2

Hibernate セッションはスレッドセーフではありません。1 つのセッションを 1 つのセッションに関連付けている限り、問題なく動作するはずです。

HTTP リクエストを使用する場合は、リクエストの実装ごとにセッションを使用する最良の方法です。この場合、リクエストが開始されるたびにセッションが開かれ、リクエストが終了すると閉じられます。この場合、スレッドが実行されている限り、セッションが利用可能であると想定しても安全です。

通常、NHibernate はセッションを使い果たすことはありませんが、可能な限り短い寿命のセッションを使用することをお勧めします。

于 2012-04-26T05:13:01.140 に答える