Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BasicDataSource 
V
    Опции темы
Tony
Дата 17.8.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Испозую BasicDataSource в спринг контроллере.
Код

Connection connection = dataSource.getConnection();
//действия с connection

Вопрос в том надо ли закрывать connection ? Или так это пuл не надо.  smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Maksym
Дата 17.8.2007, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 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 секунд
да, забыл вывод добавить smile -- закрывать надо 
PM MAIL   Вверх
Tony
Дата 17.8.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Проверил logger.info(dataSource.getMaxActive()); Даже после закрития соединения maxActive показывает сколько живо = при инициализации датасоурца maxActive. Нас4ёт 4то эта залиба: jakarta dbcp.  


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
tux
Дата 17.8.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



А maxActive должен как-то меняться? Это максимально возможное количество открытых соединений. Открыли два новых, максимально возможное число должно уменьшиться? Или увеличиться?
PM MAIL Skype GTalk Jabber YIM   Вверх
Tony
Дата 18.8.2007, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Согласен не подумал.Он всё время будет одинаковый. 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
ekr
Дата 18.8.2007, 00:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


...и это пройдет...
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 6.5.2007
Где: Moscow, RU

Репутация: 12
Всего: 19



Цитата(Tony @  17.8.2007,  19:55 Найти цитируемый пост)
Вопрос в том надо ли закрывать connection ? Или так это пuл не надо.

независимо от реализации datasource и пула соединений коннекшены из клиентского кода закрывать надо явно.
Цитата(Maksym @  17.8.2007,  20:09 Найти цитируемый пост)
да, забыл вывод добавить smile -- закрывать надо  


понятно, что в большинстве реализаций пулов при дефолтных настройках метод закрытия соединения не приведет к его физическому закрытию, а просто вернет соединение в пул.
если этого не делать явно, то соединение будет висеть как зАнятое, хотя и не используется, что на большой нагрузке сильно снизит масштабируемость приложения, всё тупо упрется в ограничение на количество открытых соединений, бОльшая часть которых не менее тупо простаивает )))
в некоторых реализациях пулов специально для предотвращения этой ситуации (connection leak) предусмотрены таймауты, и соединения, не используемые в течение этого времени насильно возвращаются в пул.

Добавлено через 1 минуту и 49 секунд
Цитата(tux @  17.8.2007,  23:38 Найти цитируемый пост)
А maxActive должен как-то меняться? Это максимально возможное количество открытых соединений. Открыли два новых, максимально возможное число должно уменьшиться? Или увеличиться? 

это детали реализации пула и datasource.
если привязывать к ним код, он получится непереносимым, что не есть гуд )


--------------------
и это пройдет....

http://ekrs.blogspot.com
PM WWW   Вверх
Tony
Дата 18.8.2007, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Спасибо пацаны.  smile Теперь буду спать спокойно, что закрывал соединения, а то му4ило меня. 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.