Seam - получить соединение через (Session) em.getDelegate (); - PullRequest
3 голосов
/ 11 февраля 2011

Я использую платформу Seam.

Если я делаю

Session sess = (Session)em.getDelegate();
Connection conn = sess.connection();

Это новое соединение?И нужно ли закрывать соединение вручную?

Я проверил это в цикле на сервере приложений Weblogic:

    Session sess = (Session)em.getDelegate();

    for (int i=1; i<=1000; i++) {
        Connection conn = sess.connection();
        // ... 
        //conn.close();
    }

И я никогда не видел в консоли, что предел пула Weblogic вышелресурсов, а также не форсирует неактивные подключения к пулу.

1 Ответ

2 голосов
/ 11 февраля 2011

Из javadoc:

Получите соединение JDBC этого сеанса.Если сеанс использует агрессивный выпуск коллекции (как в среде CMT), приложение должно закрыть соединение, возвращаемое этим вызовом.В противном случае приложение не должно закрывать соединение.

http://docs.jboss.org/hibernate/core/3.5/api/index.html?org/hibernate/Session.html

...