В компании, в которой я работаю, мы используем оболочку сеанса NHibernate, которая удаляет все сеансы, открытые в текущем веб-запросе, в конце того же запроса и фиксирует все связанные транзакции (мы работаем всреда с несколькими базами данных, и мы создаем сеанс для каждой базы данных).
Кроме того, в используемой оболочке сеанса сеанс и транзакции связаны, и мы не можем зафиксировать транзакцию без ее удаления.его сеанс.
Проблема в том, что иногда транзакция остается открытой в течение всего срока действия запроса, а таблицы базы данных остаются заблокированными слишком долго.
... мы что-то упустили?