Oracle JDBC: возобновление регистрации уведомления об изменении базы данных - PullRequest
5 голосов
/ 21 марта 2012

Я смотрю на API DBCN Oracle (непрерывное уведомление о запросах) и использую его для реализации потока событий, указывающих новые и / или измененные строки в базе данных.

Что меня беспокоит, так это: если янастроить и запустить прослушиватель изменений, а затем мой Java-клиент не работает, серверная сторона по-прежнему накапливает изменения для доставки.Однако, когда мой java-клиент возобновляет работу, мои возможности ограничиваются:

  1. Начать новую регистрацию.Я не хочу этого делать, потому что он просто запустит новую регистрацию (со старой, все еще работающей без клиента), и моя новая регистрация не будет отправлена ​​в очередь из предыдущей регистрации.
  2. Я могу запросить таблицу USER_CHANGE_NOTIFICATION_REGS , найти предварительную регистрацию и отменить ее, но это все равно не возвращает меня в список недоставленных уведомлений.

Так какя могу возобновить сеанс с существующей регистрацией?В качестве альтернативы, где я могу найти и получить уведомления, которые были заблокированы?

Спасибо.

// Николай

1 Ответ

2 голосов
/ 11 декабря 2012

Вы можете реализовать решение на стороне сервера (PL / SQL), которое поместит все изменения в очередь (Oracle Advanced Queue).Тогда ваш java-клиент сможет подключиться к этой очереди и получить изменения.

Если ваш клиент потерпит неудачу, изменения все равно будут записаны в очередь на сервере.И когда вы возобновите работу своего клиента, он получит все изменения из очереди, начиная с последнего, который вы получили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...