![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: 6 Всего: 12 |
Испозую BasicDataSource в спринг контроллере.
Вопрос в том надо ли закрывать connection ? Или так это пuл не надо. |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Tony
Не знаком с этой реализаций data source, но здравый смысл подсказывает, что если connection pool там реализован, то работаешь ты не с настоящим jdbc connection, а с некоторой его оболочкой, и вызов close() не закроет реальный jdbc connection, а просто вернет его в pool. В тех реализация connection pool, с которыми я сталкивался, вызов close() был нужен именно для этого -- чтобы сообщить менеджеру пула, что connection освобожден и его можно реиспользовать. Думаю, если в дебаге посмотреть какой реальный инстанс какого класса возвращает dataSource.getConnection(), и глянуть на этот класс -- то все станет ясно. Добавлено через 1 минуту и 14 секунд да, забыл вывод добавить |
|||
|
||||
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: 6 Всего: 12 |
Проверил logger.info(dataSource.getMaxActive()); Даже после закрития соединения maxActive показывает сколько живо = при инициализации датасоурца maxActive. Нас4ёт 4то эта залиба: jakarta dbcp.
|
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
А maxActive должен как-то меняться? Это максимально возможное количество открытых соединений. Открыли два новых, максимально возможное число должно уменьшиться? Или увеличиться?
|
|||
|
||||
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: 6 Всего: 12 |
Согласен не подумал.Он всё время будет одинаковый.
|
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
независимо от реализации datasource и пула соединений коннекшены из клиентского кода закрывать надо явно. понятно, что в большинстве реализаций пулов при дефолтных настройках метод закрытия соединения не приведет к его физическому закрытию, а просто вернет соединение в пул. если этого не делать явно, то соединение будет висеть как зАнятое, хотя и не используется, что на большой нагрузке сильно снизит масштабируемость приложения, всё тупо упрется в ограничение на количество открытых соединений, бОльшая часть которых не менее тупо простаивает ))) в некоторых реализациях пулов специально для предотвращения этой ситуации (connection leak) предусмотрены таймауты, и соединения, не используемые в течение этого времени насильно возвращаются в пул. Добавлено через 1 минуту и 49 секунд это детали реализации пула и datasource. если привязывать к ним код, он получится непереносимым, что не есть гуд ) |
|||
|
||||
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: 6 Всего: 12 |
Спасибо пацаны.
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |