Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2
  • 3

ТЕМА:

Re: Oracle. Автоматическая передача программе новых записей 12 года 9 мес. назад #2386

а что висячий таймер лучше висячего alert'а?
и через какое время делать никому не нужный селект (из временной таблице, и при плохой связи)?
мне кажется вы совсем не разобрались. можно же передавать не только факт изменения таблицы, но и сами изменения
(или их часть).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Автоматическая передача программе новых записей 12 года 9 мес. назад #2387

это же логично: использовать DBMS_ALERT для "активного" мониторинга БД, то есть подключился и ловишь данные на лету, а отключился - они просто пишутся в БД, возможно во временную таблицу - которую ты прочитаешь и очистишь при следующем подключении, и дальше включаешь "мониторинг".

Dior,
а каким макаром ты передаёшь новую строку программе, склеиваешь через разделитель или ещё как? есть DBMS_UTILITY.TABLE_TO_COMMA и назад , но как быть с дробными числами и BLOB полями (может DBMS_PIPE пристроить как-то)?!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Автоматическая передача программе новых записей 12 года 9 мес. назад #2388

всю строку я не передаю, но могу, правда не со всеми полями
(на сообшение накладывается ограничение по размеру 1800байт и типу данных - должна быть строка).
я обычно передаю какой-нибудь идентификатор, а станция решает нужно ей обновлять данные или нет.
например:
пользователь просматривает документы за 1.01.2002, а изменения произошли в документах за 2.01.2002
тогда я передаю в качестве идентификатора дату и станция решает, что ей эти изменения не нужны.

передавать данные можно как в INI файлах
variable1=value1
variable2=value2

DBMS_PIPE сдесь скорее всего не помошник. он передает данные в не зависимости от транзакций.

есть правда вариант после прихода сообщения включать дополнительный слушатель и ждать "дополнительную информацию",
в которой передавать (возможно в несколько заходов) всю информацию.
при таком подходе можно использовать и DBMS_PIPE и DBMS_ALERT, но мне кажется это слишком сложно и с отладкой замучеешься.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Автоматическая передача программе новых записей 12 года 9 мес. назад #2389

кстати возникает параллельная проблема:

написала две программы одна дописывает данные вторая показывает обновления,
сервер на другой машине ...
на 10 записей программа "ловит" 7-8 алертов в лучшем случае, остальное в "воздух"
прямо не "он-лайн мониторинг", "дуршлаг" какой-то

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Olessa.

Re: Oracle. Автоматическая передача программе новых записей 12 года 9 мес. назад #2390

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.212 секунд