Hibernate-подключения не закрываются даже с C3P0 + явное session.close()

Подключения Hibernate к MySQL моей БД не закрываются. После 10 кликов примерно за 10 секунд я получаю эту статистику подключения из MySQL Workbench (на моем компьютере для разработки. Я единственный пользователь). Статус сервера MySQL Workbench

У меня есть те, что есть

  • C3P0 и работает (проверено из log4j, никаких проблем, связанных с C3P0, похоже, работает)
  • ServletReqestListener, который проверяет наличие открытого сеанса и закрывает это в методе requestDestroyed().
  • Объект Hibernate Session хранится в ThreadLocal, поэтому каждый запрос имеет только одно соединение, которое открывается при первом запросе и закрывается в ServletRequestListener.
  • Каждый раз, когда я открываю сеанс и закрываю сеанс, я вывожу «Сеанс открыт» и «Сеанс закрыт» в System.out, как в примере кода. При каждом запросе, каждом обновлении страницы, я получаю "Сеанс открыт" и после "Сеанс закрыт" соответственно . Так что моя маленькая логика работает. Но соединение не закрывается.

Мой hibernate.cfg.xml

false
com.mysql.jdbc.Driver
officenic
jdbc:mysql://localhost/officenic
officenic
org.hibernate.dialect.MySQL5InnoDBDialect


1
100 
5
0
1
100 

Блок кода-, который я вызываю каждый раз, когда хочу закрыть сеанс.

if (session == null)
    return;

if (session.isOpen()) {

      if (session.isDirty())
         session.flush();

    session.close();
    System.out.println("Session closed");
}

Я что-то пропустил?

5
задан Seregwethrin 18 March 2012 в 02:31
поделиться