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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сокет в сервлете.... Сокет в сервлете.... 
:(
    Опции темы
ALKS
Дата 19.5.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(vasko @ 19.5.2006,  12:12)
Добавлено @ 12:15 
jimur, а в чем будет преимущество в использование RMI а не сокетов в моем случае?

если вы спросите меня - ни в чём. только медленнее будет, но не сильно smile 
PM   Вверх
jimur
Дата 19.5.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: 1
Всего: 3



Цитата(ALKS @  19.5.2006,  12:53 Найти цитируемый пост)
Цитата(vasko @ 19.5.2006,  12:12)
Добавлено @ 12:15 
jimur, а в чем будет преимущество в использование RMI а не сокетов в моем случае?

если вы спросите меня - ни в чём. только медленнее будет, но не сильно smile


runtime - никаких, rmi будет немного медленнее, если на сокетах все нормально сделать
development - быстрее, т.к. не нужно решать кучу проблем, решенных разработчиками  RMI 
PM MAIL   Вверх
COVD
Дата 19.5.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 4
Всего: 43



Цитата(COVD @ 18.5.2006,  20:25)
Цитата

апп сервер следит за количество потоков-реквестов и если их количество начинает сильно расти это значит что ваш единственый инстанс-сервлет "захлебываеться". вот в этом случае он и может создать еще один сервлетик в надежде что это поможет распределить загрузку. в большенстве случаев - поможет 


Неверная логика. .....

ALKS, тут я погорячился. Если методы сервлета синхронизированы, то потоки будут выстраиваться в очередь к обьекту сервлета и добавление нового обьекта сервлета оправдано. Согласен, что такая фича должна быть предусмотрена в контейнере сервлетов. 
PM MAIL   Вверх
ALKS
Дата 19.5.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



COVD,  Если методы сервлета синхронизирован(что на самом деле абсолютно ужастный код) это слишком простой пример. может быть что сами методы не синхронизированы, но есть синхронизированный блок кода внутри сервлета, но это тоже простой пример. а если зрить глубже, то ваш сервлет вызывает какой-то метод какого-то класса который синхронизирован и об этом не знает и не может знать не только апп сервер, но даже разработчки сервлета....

так что у разработчиков апп сервера нету выбота, они вынуждены подстилаться. smile 
PM   Вверх
Lerm
Дата 22.5.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 7.12.2004
Где: Москва, Россия

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



Заглянем в спецификацию:
Цитата

SRV.2.2 Number of Instances
The servlet declaration which is part of the deployment descriptor of the web application
containing the servlet, as described in Chapter SRV.13, “Deployment
Descriptor”, controls how the servlet container provides instances of the servlet.
For a servlet not hosted in a distributed environment (the default), the servlet
container must use only one instance per servlet declaration
. However, for a servlet
implementing the SingleThreadModel interface, the servlet container may instantiate multiple instances to handle a heavy request load and serialize requests
to a particular instance.
...

SRV.2.3.3.1 Multithreading Issues
A servlet container may send concurrent requests through the service method of
the servlet. To handle the requests the developer of the servlet must make adequate
provisions for concurrent processing with multiple threads in the service method.

An alternative for the developer is to implement the SingleThreadModel
interface which requires the container to guarantee that there is only one request
thread at a time in the service method. A servlet container may satisfy this
requirement by serializing requests on a servlet, or by maintaining a pool of servlet
instances. If the servlet is part of a web application that has been marked as distributable,
the container may maintain a pool of servlet instances in each VM that
the application is distributed across.
For servlets not implementing the SingleThreadModel interface, if the
service method (or methods such as doGet or doPost which are dispatched to the
service method of the HttpServlet abstract class) has been defined with the
synchronized keyword, the servlet container cannot use the instance pool
approach, but must serialize requests through it. It is strongly recommended that
developers not synchronize the service method (or methods dispatched to it) in
these circumstances because of detrimental effects on performance.


Таким образом, согласно спецификации:
1. Есть один инстанс сервлета и все запросы идут через него параллельно. Следить за согласованностью доступа к разделяемым объектам - задача разработчика. Спецификация жестко  запрещает контейнеру создавать пул экземпляров сервлета (что вполне логично).
2. Если сервлет реализует интерфейс SingleThreadModel, то этим разработчик заявляет, что каждый экземпляр должен обрабатывать не более одного запроса одновременно. Как этого достичь - оставляется на усмотрение контейнера: либо выстраивать запросы в очередь, либо использовать пул экземпляров (что в данном случае разрешено).
3. Если методы service, doPost или doGet сервлета объявлены как синхронизованные, то контейнер обязан выстраивать все запросы в очередь и не может создавать пул экземпляров. 
PM MAIL WWW ICQ   Вверх
ALKS
Дата 22.5.2006, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Lerm, а ссылку? smile 
PM   Вверх
COVD
Дата 22.5.2006, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 4
Всего: 43



Пофантазирую. Lerm пишет о спецификации для контейнера, а ALKS все больше о апп сервере. Разные вещи?  

Это сообщение отредактировал(а) COVD - 22.5.2006, 21:06
PM MAIL   Вверх
Lerm
Дата 23.5.2006, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 7.12.2004
Где: Москва, Россия

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



Цитата
Lerm, а ссылку?

На Servlet 2.3 Specification? ;)
http://javashoplm.sun.com/ECom/docs/Welcom...sactionId=noreg
А разделы я указал в цитате.

Цитата
Пофантазирую. Lerm пишет о спецификации для контейнера, а ALKS все больше о апп сервере. Разные вещи?


Не вижу разницы. Мы же говорим конкретно о сервлетах, а не о других типах серверных приложений - просто контейнер сервлетов является частью сервера приложений. 
Другое дело, что разработчик контейнера может встроить в него некотороые нестандартные вещи, которые могут нарушать спецификацию - но они должны быть отключены по умолчанию (или контейнер не соответствует стандарту). 
PM MAIL WWW ICQ   Вверх
mayatnikov
Дата 9.9.2006, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если актульно еще ,потверди - совсем недавно делал сервлет вот такой стартует автоматически, слушает сокет и параллельно работает с базой данных, что то вроде счетчика вхождений - таймеров. могу дать исходники, рабочие.
PM MAIL   Вверх
Страницы: (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.0785 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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