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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Connection Pool 
:(
    Опции темы
batigoal
Дата 18.2.2005, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Уже несколько раз встречал советы типа "Используй для коннекта к БД connection pool". Объясните плиз, кратенько, с чем его едят, в чем выгода и, если можно, скелетную схему реализации.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
AntonSaburov
Дата 18.2.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Основная идея connection pool состоит в том, что затраты на создание коннекта к базе достаточно ресурсоемкая операция и удобно иметь некоторое количество уже готовых коннектов к базе, которые пул выдает по требованию.

Т.е. идея сделать класс, который внутри себя содержит массив уже открытх коннектов. При запросе коннекта пул отдает свобожный и помечает его как занятый. После того, кака клиент закончил работать с коннектом, он не закрывает его, а отдает обратно пулу.

Если у пула нет свободных коннектов, то можно либо открывать еще конекты, либо просить клиента подождать.

Но чем интересен J2EE сервер - у него обычно есть свой собственный пул коннектов, который настраивается в конфигураторе. Там можно установить - сколько, к какому источнику данных и прочая. Само собой в этом случае не надо ничего писать - уже все есть. Используй на здоровье smile
PM MAIL WWW ICQ   Вверх
batigoal
Дата 18.2.2005, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Тогда такой вопрос: J2EE сервер - это ведь не то же самое, что веб-сервер? Скажем, Томкат - имеет пул соединений?

И можно еще какую-нибудь ссылочку, чтоб больше не отвлекать smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
AntonSaburov
Дата 18.2.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Ну это сильно зависит от сервера. Вот наример для JBoss можно посмотреть Connection Pool Configuration Examples and Driver Notes
PM MAIL WWW ICQ   Вверх
batigoal
Дата 18.2.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Пасиба. Я, правда, с JBoss'ом никогда не работал, но ведь надо когда-то и начинать smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Guest
Дата 19.2.2005, 16:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Lamer @ 18.2.2005, 17:31)
Тогда такой вопрос: J2EE сервер - это ведь не то же самое, что веб-сервер? Скажем, Томкат - имеет пул соединений?

И можно еще какую-нибудь ссылочку, чтоб больше не отвлекать  smile

пулл соединений он имеет, как и пул тхреадов.
НО! ты спрашивал про пулл соединений с БД - тут тебе никто не поможет - делай сам. Правда в JDBC для FireBird уже к примеру что-то реализовано.
Но на практике - этот самый пулл коннектов к БД делается за 15-30мин. _свой_ ... так что лучше свой smile.

Sleepy_PIP
  Вверх
batigoal
Дата 19.2.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(Guest @ 19.2.2005, 16:17)
Но на практике - этот самый пулл коннектов к БД делается за 15-30мин. _свой_ ... так что лучше свой

Это если уже умеешь... А если нет - то несколько дней...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Domestic Cat
Дата 19.2.2005, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Цитата(Guest @ 19.2.2005, 07:17)
Но на практике - этот самый пулл коннектов к БД делается за 15-30мин. _свой_ ... так что лучше свой smile.


Есть хороший принцип - NIH (Not Invented Here). Суть его в том, что в 99,9999% случаев написанная тобой за 15-30 минут примочка будет хуже, чем аналогичная, но написанная специалистами, оттестированная тысячами пользователей.

http://db.apache.org/torque/index.html


--------------------

PM   Вверх
Guest
Дата 20.2.2005, 17:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Domestic @ 19.2.2005, 20:05)
Цитата(Guest @ 19.2.2005, 07:17)
Но на практике - этот самый пулл коннектов к БД делается за 15-30мин. _свой_ ... так что лучше свой smile.


Есть хороший принцип - NIH (Not Invented Here). Суть его в том, что в 99,9999% случаев написанная тобой за 15-30 минут примочка будет хуже, чем аналогичная, но написанная специалистами, оттестированная тысячами пользователей.

http://db.apache.org/torque/index.html

извини, но тогда надо сравнивать время разработки своей примочки с суммой времен - на: 1. поиск чужей примочки+2. освоение чужей примочки+3.тестирование чужей примочки+4. обход багов чужой примочки (хорошо если она с сорцами!).
Так что вопрос для программера - в балансировании между временем разработки своего варианта решения, или временем на применение чъего-то другого решения.
Мое решение (собственное) пережило 2 серевера БД. А вот найти и разобраться с аналогичным за 30 мин. мне не удалось тем более что речь идет и правда о малых трудозатратах.

Как яркий пример могу привести common-net - я взял ее для работы с FTP. и затратил довольно много времени для разбирателвств с нею, и переделки ее под понимание русских букв.
В ведь common-net используют наверняка тысячи пользователей!.
Аналогично повторяется с ADF-Faces - я уже как несколько мес. (вечерами) тестирую эту библиотеку, постоянно нарываясь на баги ... ну и что теперь? Но сесть и писать свою - я не в состоянии ... т.е. вот конкретный пример выбора между суммой времен ... и так везде.
ну разве не так? smile




  Вверх
Sleepy_PIP
Дата 20.2.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Guest @ 20.2.2005, 17:25)
Цитата(Domestic @ 19.2.2005, 20:05)
Цитата(Guest @ 19.2.2005, )
Но на практике - этот самый пулл коннектов к БД делается за 15-30мин. _свой_ ... так что лучше свой smile.


Есть хороший принцип - NIH (Not Invented Here). Суть его в том, что в 99,9999% случаев написанная тобой за 15-30 минут примочка будет хуже, чем аналогичная, но написанная специалистами, оттестированная тысячами пользователей.

http://db.apache.org/torque/index.html

извини, но тогда надо сравнивать время разработки своей примочки с суммой времен - на: 1. поиск чужей примочки+2. освоение чужей примочки+3.тестирование чужей примочки+4. обход багов чужой примочки (хорошо если она с сорцами!).

ООО! Пардон. не заметил что у меня рецепты сбросились smile ... Приношу извинений - посл. письмо - от меня ...


--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
Domestic Cat
Дата 20.2.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Если речь о небольшом приложении и единичной потребности, то да. Но по большому счету я не соглашусь. Ты ведь пользуешь например ArrayList? Самому его легко написать, но если туда попадет баг - потратишь время.
Тот же коннекшн пул - даже простейший вариант означает многопоточность. Сделаешь маленький недосмотр, оттестишь - работает. А в рабочих условиях все накрывается медным тазиком при большом числе коннекшнов. Тут проще потратить 1 день и разобраться с чужим приложениием, чем потом мучаться неделю на выслеживание трудноуловимого бага. smile


--------------------

PM   Вверх
Sleepy_PIP
Дата 20.2.2005, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Domestic @ 20.2.2005, 19:59)
Если речь о небольшом приложении и единичной потребности, то да. Но по большому счету я не соглашусь. Ты ведь пользуешь например ArrayList? Самому его легко написать, но если туда попадет баг - потратишь время.
Тот же коннекшн пул - даже простейший вариант означает многопоточность. Сделаешь маленький недосмотр, оттестишь - работает. А в рабочих условиях все накрывается медным тазиком при большом числе коннекшнов. Тут проще потратить 1 день и разобраться с чужим приложениием, чем потом мучаться неделю на выслеживание трудноуловимого бага. smile

ну вот в Опен соурс разборки в 1 день - малы. надо как я и писал - найти, разобраться ( и ВЫБРАТЬ!), попатсть на баги и научиться их обходить ... для данной, пприведенной задачи - это не стоит так делать, согласись!



--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
Domestic Cat
Дата 20.2.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Цитата(Sleepy_PIP @ 20.2.2005, 11:18)
ну вот в Опен соурс разборки в 1 день - малы. надо как я и писал - найти, разобраться ( и ВЫБРАТЬ!), попатсть на баги и научиться их обходить ... для данной, пприведенной задачи - это не стоит так делать, согласись!


Зато, потратив время на Стратс, коммонс и т п, потом легче и проще писать.


--------------------

PM   Вверх
batigoal
Дата 20.2.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Пардон, это опять я вклиниваюсь в беседу умных людей. "Коммонс" - это библиотеки common-net и еще несколько common-что-то, да?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 20.2.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 5
Всего: 538



Лучше использовать общепризнанные технологии. Они лучше оттестированны, обеспечивают большую гибкость и универсальность.
Да, тот код который ты напишешь, будет подходить под твои условия лучше, но по мере развития проекта и он будет требовать постоянной переделки, его нельзя будет использовать в другом проекте.
Цитата
Лучше день потерять, потом за 5 минут долететь!



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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