Относительно ответа Криса и последующего вопроса «как настроить сеанс на закрытие после запроса»: традиционный способ сделать это - обернуть соответствующие сервлеты (предполагая, что это веб-приложение) в открывшемся фильтре сеанс и связывает его с текущим потоком, вызывает doFilter, а затем либо фиксирует, либо откатывает транзакцию в зависимости от того, произошла ли ошибка. Это называется шаблоном «Открыть сеанс в представлении».