Как настроить Hibernate таким образом, чтобы при каждом вызове sessionFactory.openSession () он подключался к новому соединению из пула соединений?
Это поведение по умолчанию, каждый сеанс получает выделенное соединение из пула соединений.
Сейчас кажется, что оба сеанса используют одно и то же соединение, потому что когда первый сеанс закрывается (вручную вызывая session.close ()), иногда другой сеанс выдает исключение «закрытый сеанс» при попытке запустить больше запросов к нему.
Нет, это не так. Но, возможно, второе соединение освобождается в конце транзакции, инициированной для запроса. Посмотрите на hibernate.connection.release_mode
параметр конфигурации , вы можете использовать on_close
. Но без более подробной информации о вашей стратегии транзакций невозможно ничего сказать.
Второй сеанс открыт дочерним потоком, что означает, что дочерний поток может продолжать жить даже после завершения (HTTP) запроса.
Примите мой предыдущий совет с небольшим количеством соли, вы просто не должны порождать неуправляемых потоков , и я не знаю, как будет вести себя сервер приложений. Я объясню в этом другом ответе , что будет правильным путем.