![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
vasko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 6.5.2006 Репутация: нет Всего: нет |
что такое пул соединений?
|
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Хранилище готовых к употреблению соединений. В данном случае речь шла о соединениях к базе данных. Обычно используют уже существующие пакеты, которые только настроить надо. После использования соединения оно возвращается обратно в хранилище и становится доступным другому желающему. Как книги в библиотеке. Это сообщение отредактировал(а) COVD - 18.5.2006, 18:27 |
|||
|
||||
ALKS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 6 Всего: 11 |
вы меня с SingleThreadModel о котором я и не слышал ни чего до этого топа запутали совсем
![]() значить так, для каждого реквеста создаеться поток. но это вовсе не значит что это поток для своей обработки бирет инстанс сервлета из какого-то пула. не совсем так. апп сервер не знает и не может знать чего у вас там в сервлете запрограммировано. может вы "хороший" парень а может и нет. в конце концов вы в любом случае сталкиваетесь с массой незаметных на первых взгляд случаев синхронизации - например получении коннекта к базе из пула это операция синхронизированная и могущая занимать несколько секунд легко. да и не только она. апп сервер следит за количество потоков-реквестов и если их количество начинает сильно расти это значит что ваш единственый инстанс-сервлет "захлебываеться". вот в этом случае он и может создать еще один сервлетик в надежде что это поможет распределить загрузку. в большенстве случаев - поможет ![]() Но все это конечно теории и нюансы имплементации конкретного апп сервера, но вы как разработчик должны предполагать что ваше вэб приложение вполне может работать на апп сервере который плодит сервлеты ![]() начет того что хранить в контексте что-то это идея не лучшая - согласен полностью. да и честно говря не очень понятно, зачем. разве что ссылку на объект-синглтон туда пихать. ![]() |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Неверная логика. Метод - он всегда один (не зависит от количества инстансев), потому что это описание, что надо сделать, набор инструкций. Метод doGet будет одновременно исполняться разными потоками, и у каждого потока будет свой участок памяти, где создаются локальные переменные метода. Инстансы же нужны, чтобы хранить состояние, данные. Если вы в сервлете их не храните, то увеличение количества обьектов сервлета не имеет смысла, это только отожрет память, и ничего более. Думаю, что создатели серверов это учитывали, и обьекты сервлетов будут плодиться только, если сервер об этом явно попросить, например, имплементируя SingleThreadModel. Т.е. если вы намерены хранить данные именно в сервлете (а не в сессии) и поэтому хотите иметь на каждый поток свой обьект сервлета. Это сообщение отредактировал(а) COVD - 18.5.2006, 21:03 |
|||
|
||||
jimur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 21.4.2006 Репутация: 1 Всего: 3 |
||||
|
||||
ALKS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 6 Всего: 11 |
jimur, быстрее сокетов ничего нету.
![]() |
|||
|
||||
vasko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 6.5.2006 Репутация: нет Всего: нет |
теоретически как разрешить проблему мне понятно, спасибо всем огромное, особенно ALKS'у....
только вот начальство пока не согласно с тем, что бы клиент пулил меня для асинхронного получения ответа ![]() буду копать в направление Web Service..... |
|||
|
||||
jimur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 21.4.2006 Репутация: 1 Всего: 3 |
||||
|
||||
ALKS |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 6 Всего: 11 |
COVD, а блокировки где, как ты думаеш, храняться? в методе или все-таки в инстансе объекта? ![]() ![]() |
||||
|
|||||
vasko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 6.5.2006 Репутация: нет Всего: нет |
||||
|
||||
jimur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 21.4.2006 Репутация: 1 Всего: 3 |
Если я правильно понял второй модуль запускаетсся как отдельный процесс, возможно на другой машине, в нем должне жить реализованный тобой адаптер. Тогда решение примерно следующее: Реализуешь адаптер (RMI Server), который регистрируется в rmiregistry. Твой сервлет использует RMI Client для отправки заданий на сервер и для получения результатов. Вроде ничего сложного. |
|||
|
||||
vasko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 6.5.2006 Репутация: нет Всего: нет |
ок, спасибо jimur. это еще один из вариантов решения проблемы....
а случаем ссылок на статьи или книги по технологии RMI нету? можно ли RMI Server реализовать на java (не java-script а именно джава)? |
|||
|
||||
jimur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 21.4.2006 Репутация: 1 Всего: 3 |
ссылка на туториал http://www.google.ru/search?q=rmi+tutorial
этого достаточно для реализации простого приложения на jguru.com есть хороший раздел на эту тему спецификацию тоже хорошо бы прочитать ![]()
ммм... java-script то здесь вообще каким боком? |
|||
|
||||
ALKS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 6 Всего: 11 |
Эээ RMI (Remote method invocation ) это только Java. за пределами Java эта абревиатура не существует. в общем случае, вне языков программированя, такая техника называеться RPC (remote procedure call). RMI это по сути реализация RPC в Java.
|
|||
|
||||
vasko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 6.5.2006 Репутация: нет Всего: нет |
jimur, не зная теории можно и не такие вопросы задать ![]() по поводу доков - неплохая инфа тут - RMI tutorial Добавлено @ 12:15 jimur, а в чем будет преимущество в использование RMI а не сокетов в моем случае? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |