Производительность Session.disconnect в Java Hibernate - PullRequest
0 голосов
/ 04 февраля 2012

Время от времени в нашей системе возникали засухи на подключениях, и, похоже, проблема в том, что сеансы не возвращаются в пул подключений достаточно быстро. Я написал тест, который, кажется, подтверждает, что использование Session.disconnect () на сессиях (после того, как они будут выполнены) решит эту проблему. Тем не менее, я также рассчитал время этих звонков, и кажется, что использование разъединения увеличивает время выполнения в 3 раза.

Согласно документации (http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/Session.html#disconnect()), отключение должно возвращать его в пул соединений. Тем не менее, документ также говорит, что он "закрывает" соединение. Я не уверен, что это значит, потому что я точно знаю, что Session.close () делает больше, чем отключение, и что хорошего в пуле соединений, если вы закроете соединение перед его возвратом?

В любом случае, мне интересно, почему метод, который возвращает сеанс в пул соединений, был бы не мгновенным и по существу бесплатным. Конечно, в этом весь смысл пула соединений, верно?

Любые идеи будут оценены.

...