2010-04-08 2 views
1

Я думаю о платформе GlassFish для своего нового приложения.GlassFish JDO и глобальный объект

  1. Мое приложение env. не имеет большого объема данных для обработки, но многие пользователи пишут/читают одни и те же данные

  2. Очень волатильная часть данных обновляется каждые 200 миллисекундов пользователями. Поэтому я хотел бы, что тип данных, чтобы быть в памяти только и доступной для всего приложения

Мои вопросы:

  1. Как использовать глобальный объект в памяти с GF? a. использовать статический объект переменной - для этого я предполагаю, что мне нужно убедиться, что GF работает только на 1 JVM -> как настроить GF для запуска на 1 jvm? b. используйте HttpContext - то же, что и.
  2. Как я сохраняю DB? a. Можно ли использовать интерфейс JDO?
  3. Как планировать задачи, которые будут выполняться в будущем (что-то вроде очереди задач в GAE)

спасибо, J.S. Bach

ответ

0

Как использовать глобальный объект в памяти с GF?

Я бы использовал кеш второго уровня (который вы получаете в JPA 2). Реализация кэша L2 будет зависеть от поставщика JPA.

Как я сохраняю DB? а. Можно ли использовать интерфейс JDO?

Я бы придерживаться JPA 2.

Как запланировать задачи, которые будут выполняться в будущем

Я хотел бы использовать расширенную Timer Service API в EJB 3.1, чем позволяет создать хроны типа расписания для запуска методов EJB (просто аннотирование метода EJB с @Schedule аннотацию):

@Stateless 
public class NewsLetterGeneratorBean implements NewsLetterGenerator { 
    @Schedule(second="0", minute="0", hour="0", dayOfMonth="1", month="*", year="*") 
    public void generateMonthlyNewsLetter() { 
     ... Code to generate the monthly news letter goes here... 
    } 
} 

Приведенный выше пример взято из this article на TheServerSide.

+0

Этот сайт утверждает, что JPA в 10 раз медленнее, чем JDBC (http://weblogs.java.net/blog/mkarg/archive/2010/01/03/jpa-great-damned-slow). Как использовать JPA 2 для глобальной переменной памяти? Любой другой простой вариант? – bach

+0

@bach 1) Вы должны перечитать этот пост более тщательно, до конца (и не считая времени, проведенного в базе данных, смешно). 2) JPA 2 имеет глобальный кеш, просто используйте его. Или не используйте JPA вообще, но по-прежнему используйте глобальный кеш (например, EHCache) и делайте все вручную. –

Смежные вопросы