В моем веб-приложении используется ActiveJDBC. Для этой структуры ORM необходимо открыть новое соединение с каждым новым потоком (и, конечно же, закрыть его при завершении потока). Мне интересно, если лучший способ добиться этого - использовать веб-фильтр.Tomcat + ActiveJDBC: открыть/закрыть соединение с помощью сервлет-фильтра?
если это так, где я могу позвонить Base.open()
? варианты: init()
или doFilter()
. также, если я планирую позвонить Base.close()
в destroy()
, мне нужно знать, что действительно destroy()
всегда вызывается при завершении потока, является ли он нормальным или ненормальным.
EDIT: после прочтения о фильтрах сервлетов, теперь я считаю, что надлежащая обработка будет открывать и закрывать соединение в doFilter()
:
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException {
Base.open();
chain.doFilter(request,wrapper);
Base.close();
}
это правильный путь?
что заставляет вас думать, что я не использую пул соединений? даже в пуле соединений, вы вызываете conn.close(), чтобы вернуть его в пул ... –