Таким образом, нет необходимости пытаться заставить NH открывать новое соединение для каждого сеанса, потому что повторное использование существующих соединений фактически повышает производительность SQL Server.

сматриваю возможность использования Fluent NHibernate для нового приложения с SQL Server 2008, и у меня возникают проблемы с пониманием поведения обработки соединений, которое я вижу.

Я отслеживаю соединения, используя sp_who2, и вот что я вижу:

Когда SessionFactory создан, открывается одно соединение. Это соединение остается открытым до тех пор, пока приложение не будет уничтожено.

При открытии нового сеанса соединение не открывается. (Это нормально, я понимаю, что NHibernate ждет до последнего момента для создания соединений с базой данных).

Новое соединение не открывается, даже когда я запускаю запрос через NHibernate. Я должен предположить, что он использует соединение, созданное при создании SessionFactory, которое все еще открыто. Я установил точку останова после запроса (до закрытия сеанса), и в sp_who новых сеансов не появилось.

Запуск всего приложения через одно соединение недопустим (очевидно).Как я могу гарантировать, что каждая ISession получает свое собственное соединение? Я уверен, что здесь есть что-то очевидное, чего мне не хватает ...

Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос