![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Andrey1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 27.2.2004 Где: Moscow Репутация: 2 Всего: 5 |
Как-то давно я спрашивал про то, как решить проблему с тем, что при при любой перегрузки контекста веб-приложения с JPA перегружается тяжелая EntityManagerFactory.
Советовали смотреть в сторону OSGI... Может кто-то может скачать что-то более конкретное? Или поделиться ценным опытом или другим сакральным знанием? В принципе проблема-то общая: есть ресурсы, которые нужно поднимать один раз, во время, когда поднимается сам сервер и дальше брать только инстансы от них. Это сообщение отредактировал(а) Andrey1 - 28.7.2011, 10:06 -------------------- Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания. из сутры помоста шестого патриарха Хуэйнена |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Я сторонник интеграции: веб-приложение - JPA-приложение - АБВГД приложение ... И никаких OSGi на серверной стороне не понадобится. |
|||
|
||||
Farmazon |
|
|||
![]() Разработчик ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 7.7.2006 Репутация: 3 Всего: 5 |
А шо, не такая уж дурная идея. Попырь Virgo RT.
Добавлено через 35 секунд правда кое-какие сложности с пучками огребёшь... не всё портировано... -------------------- Таково моё общее мнение. |
|||
|
||||
Andrey1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 27.2.2004 Где: Moscow Репутация: 2 Всего: 5 |
Интеграция должна быть в "горячем" режиме, когда часть приложений уже работают и часть приложений могут перегружаться. Вопрос в том, какие есть технологии для такой интеграции. -------------------- Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания. из сутры помоста шестого патриарха Хуэйнена |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Любая технология интеграции. Я сейчас активно применяю распределенную память, т.е. data grid. В частности Hazelcast. Или реализации JMS. Все технологии относительно "горячего" схожи. В OSGi приложении перегружаемый модуль недоступен во время перегрузки остальным модулям. Точно также в распределенном приложении перезапуск одного из приложений делает его недоступным для остальных какое-то время. Везде надо как-то обрабатывать ситуацию временной недоступности. И выгрузка OSGi плагина и отключение приложения в распределенной системе осуществляются в два шага: 1. плагин или приложение должны завершить текущие и перестать получать новые запросы извне. 2. плагин или приложение должны завершить все внутренние асинхронные текущие задачи и освободить ресурсы. В OSGi п.1 делает OSGi контейнер ( вызовы-то между плагинами через контейнер идут). Потом выполняется п.2 путем синхронного вызова метода stop() в реализации BundleActivator модуля. Аналогично в Томкате, который по отношению к веб-приложениям (war'ы) ведет себя как OSGi контейнер. Удалением war из webapps начинается п.1. После завершения текущих запросов к удаляемому приложению выполняется п.2. Это обеспечивается синхронным вызовом contextDestroyed в лисенере, имплементирующем javax.servlet.ServletContextListener. Если, конечно, приложение его обьявило в web.xml. Аналогично в распределенной системе. Выключение одного из приложений начинается с п.1 - приложение сначала отключается от JMS или от datagrid или выключает RMI или закрывает сокеты. Потом п.2. Корректность "горячего" выхода компонента в том, чтобы он перестал брать новые и завершил текушие задачи. Это сообщение отредактировал(а) COVD - 28.7.2011, 17:41 |
|||
|
||||
Andrey1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 27.2.2004 Где: Moscow Репутация: 2 Всего: 5 |
-------------------- Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания. из сутры помоста шестого патриарха Хуэйнена |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |