ReadCommitted Isolation を使用している NHibernate MVC アプリケーションがあります。
サイトには、ユーザーが開始できる特定のプロセスがあり、入力によっては数分かかる場合があります。これは、セッションがリクエストごとであり、その間ずっと開いているためです。
ただし、それが実行されている間、他のユーザーはサイトにアクセスできません (アクセスを試みることはできますが、長期実行が終了しない限り、要求は通過しません)。
さらに、同じデータベースに接続しながら、この長時間実行される機能を実行するコンソール アプリも必要です。それは同じ問題を引き起こしています。
セットアップのどの部分が間違っているのかわかりません。フィードバックをいただければ幸いです。
NHibernate は流暢な構成と StructureMap でセットアップされます。
- 分離レベルは ReadCommitted として設定されます。
- セッション ファクトリのライフサイクルは HybridLifeCycle です (Web では Session per request である必要がありますが、win コンソール アプリでは ThreadLocal になります)。