Eclipselink и триггер обновления при множественном доступе к базе данных - PullRequest
3 голосов
/ 13 апреля 2010

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

Предоставляет ли Eclipselink механизм запуска (автоматически?) Для перезагрузки данных при изменении базы данных? Как можно использовать этот триггер?

Спасибо!

1 Ответ

3 голосов
/ 07 июля 2010

Одно из использованных мной решений состоит в том, чтобы использовать триггеры в базе данных для отправки сообщения JMS в ваше приложение. Затем сообщение принимается в MDB, где кэш EclipseLink может быть аннулирован или обновлен. Этот подход хорошо работает в базе данных Oracle, где триггер сбрасывает сообщения в таблицу AQ.

Это специфичные для СУБД решения, с которыми я знаком, но задача всегда состоит в том, чтобы получить уведомление об изменении, включающее в себя таблицу и значения PK вместо ROWID, а также убедиться, что вы не будете уведомлены об изменениях, которые вы сделали самостоятельно или у вас есть способ легко отфильтровывать уведомления от ваших собственных изменений.

Я считаю, GoldenGate помогает решить эту проблему, но я еще не пробовал сам.

Doug

...