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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JPA: как держать EntityFactory открытой? OSGI? 
:(
    Опции темы
Andrey1
Дата 27.7.2011, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как-то давно я спрашивал про то, как решить проблему с тем, что при при любой перегрузки контекста веб-приложения с JPA  перегружается тяжелая EntityManagerFactory.

Советовали смотреть в сторону OSGI...

Может кто-то может скачать что-то более конкретное? Или поделиться ценным опытом или другим сакральным знанием?

В принципе проблема-то общая: есть ресурсы, которые нужно поднимать один раз, во время, когда поднимается сам сервер и дальше брать только инстансы от них.

Это сообщение отредактировал(а) Andrey1 - 28.7.2011, 10:06


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
COVD
Дата 28.7.2011, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

веб-приложения с JPA  

Я сторонник интеграции: веб-приложение - JPA-приложение - АБВГД приложение ... И никаких OSGi на серверной стороне не понадобится.   

PM MAIL   Вверх
Farmazon
Дата 28.7.2011, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

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



А шо, не такая уж дурная идея. Попырь Virgo RT.

Добавлено через 35 секунд
правда кое-какие сложности с пучками огребёшь... не всё портировано...


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
Andrey1
Дата 28.7.2011, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(COVD @  28.7.2011,  05:23 Найти цитируемый пост)
Я сторонник интеграции: веб-приложение - JPA-приложение - АБВГД приложение ... И никаких OSGi на серверной стороне не понадобится.   

Интеграция должна быть в "горячем" режиме, когда часть приложений уже работают и часть приложений могут перегружаться. Вопрос в том, какие есть технологии для такой интеграции.


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
COVD
Дата 28.7.2011, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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
PM MAIL   Вверх
Andrey1
Дата 19.9.2011, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



http://habrahabr.ru/blogs/java/128653/

Gemini JPA то что нужно?


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1249 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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