Вопрос

У меня есть приложение Eclipse RCP с экземпляром модели EMF, заполненным в памяти.Как лучше всего сохранить эту модель для доступа к внешним системам?Доступ может осуществляться во время и после выполнения.

Чтение и запись модели довольно сбалансированы и могут происходить несколько раз в секунду.

Я думаю, что база данных, заполненная с использованием Hibernate + Teneo + EMF, будет работать хорошо, но я хочу знать, какие еще варианты существуют.

Это было полезно?

Решение

Я использую CDO (подключенные объекты данных) в сочетании с EMF, чтобы сделать что-то подобное.Если вы используете примеры из вики Eclipse, запуск не займет много времени.Несколько предостережений:

  1. Для данных, которые часто меняются, вы, вероятно, захотите использовать режим без аудита для обеспечения постоянства.В противном случае вы будете сохранять новую версию вашего EObject при каждом коммите, сохраняя при этом и старые.

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

  3. У вас также есть довольно гибкие варианты блокировки, если вы решите это сделать.

Мое приложение использует Derby для обеспечения устойчивости, хотя вскоре оно будет перенесено на SQL Server.

На Eclipse Live есть 1-часовой вебинар (http://live.eclipse.org/node/635), который знакомит с CDO и дает несколько хороших примеров его использования.

Другие советы

Я бы выбрал Teneo для выполнения тяжелой работы, если только производительность не является реальной проблемой (чего не будет, если ваши модели не огромны).Даже если он медленный, вы можете настроить его с помощью аннотаций JPA.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top