![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Уже несколько раз встречал советы типа "Используй для коннекта к БД connection pool". Объясните плиз, кратенько, с чем его едят, в чем выгода и, если можно, скелетную схему реализации.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Основная идея connection pool состоит в том, что затраты на создание коннекта к базе достаточно ресурсоемкая операция и удобно иметь некоторое количество уже готовых коннектов к базе, которые пул выдает по требованию.
Т.е. идея сделать класс, который внутри себя содержит массив уже открытх коннектов. При запросе коннекта пул отдает свобожный и помечает его как занятый. После того, кака клиент закончил работать с коннектом, он не закрывает его, а отдает обратно пулу. Если у пула нет свободных коннектов, то можно либо открывать еще конекты, либо просить клиента подождать. Но чем интересен J2EE сервер - у него обычно есть свой собственный пул коннектов, который настраивается в конфигураторе. Там можно установить - сколько, к какому источнику данных и прочая. Само собой в этом случае не надо ничего писать - уже все есть. Используй на здоровье |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Тогда такой вопрос: J2EE сервер - это ведь не то же самое, что веб-сервер? Скажем, Томкат - имеет пул соединений?
И можно еще какую-нибудь ссылочку, чтоб больше не отвлекать -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Ну это сильно зависит от сервера. Вот наример для JBoss можно посмотреть Connection Pool Configuration Examples and Driver Notes
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Пасиба. Я, правда, с JBoss'ом никогда не работал, но ведь надо когда-то и начинать
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
пулл соединений он имеет, как и пул тхреадов. НО! ты спрашивал про пулл соединений с БД - тут тебе никто не поможет - делай сам. Правда в JDBC для FireBird уже к примеру что-то реализовано. Но на практике - этот самый пулл коннектов к БД делается за 15-30мин. _свой_ ... так что лучше свой Sleepy_PIP |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Это если уже умеешь... А если нет - то несколько дней... -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Есть хороший принцип - NIH (Not Invented Here). Суть его в том, что в 99,9999% случаев написанная тобой за 15-30 минут примочка будет хуже, чем аналогичная, но написанная специалистами, оттестированная тысячами пользователей. http://db.apache.org/torque/index.html -------------------- |
|||
|
||||
| Guest |
|
||||
|
Unregistered |
извини, но тогда надо сравнивать время разработки своей примочки с суммой времен - на: 1. поиск чужей примочки+2. освоение чужей примочки+3.тестирование чужей примочки+4. обход багов чужой примочки (хорошо если она с сорцами!). Так что вопрос для программера - в балансировании между временем разработки своего варианта решения, или временем на применение чъего-то другого решения. Мое решение (собственное) пережило 2 серевера БД. А вот найти и разобраться с аналогичным за 30 мин. мне не удалось тем более что речь идет и правда о малых трудозатратах. Как яркий пример могу привести common-net - я взял ее для работы с FTP. и затратил довольно много времени для разбирателвств с нею, и переделки ее под понимание русских букв. В ведь common-net используют наверняка тысячи пользователей!. Аналогично повторяется с ADF-Faces - я уже как несколько мес. (вечерами) тестирую эту библиотеку, постоянно нарываясь на баги ... ну и что теперь? Но сесть и писать свою - я не в состоянии ... т.е. вот конкретный пример выбора между суммой времен ... и так везде. ну разве не так? |
||||
|
|||||
| Sleepy_PIP |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 2 Всего: 12 |
ООО! Пардон. не заметил что у меня рецепты сбросились -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
||||||
|
|||||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Если речь о небольшом приложении и единичной потребности, то да. Но по большому счету я не соглашусь. Ты ведь пользуешь например ArrayList? Самому его легко написать, но если туда попадет баг - потратишь время.
Тот же коннекшн пул - даже простейший вариант означает многопоточность. Сделаешь маленький недосмотр, оттестишь - работает. А в рабочих условиях все накрывается медным тазиком при большом числе коннекшнов. Тут проще потратить 1 день и разобраться с чужим приложениием, чем потом мучаться неделю на выслеживание трудноуловимого бага. -------------------- |
|||
|
||||
| Sleepy_PIP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 2 Всего: 12 |
ну вот в Опен соурс разборки в 1 день - малы. надо как я и писал - найти, разобраться ( и ВЫБРАТЬ!), попатсть на баги и научиться их обходить ... для данной, пприведенной задачи - это не стоит так делать, согласись! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Зато, потратив время на Стратс, коммонс и т п, потом легче и проще писать. -------------------- |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Пардон, это опять я вклиниваюсь в беседу умных людей. "Коммонс" - это библиотеки common-net и еще несколько common-что-то, да?
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 5 Всего: 538 |
Лучше использовать общепризнанные технологии. Они лучше оттестированны, обеспечивают большую гибкость и универсальность.
Да, тот код который ты напишешь, будет подходить под твои условия лучше, но по мере развития проекта и он будет требовать постоянной переделки, его нельзя будет использовать в другом проекте.
-------------------- 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. |
|||
|
||||
![]()
|
| Правила форума "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. |