Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Оповещение стороннего приложения при изменении таблицы / 18 сообщений из 18, страница 1 из 1
02.12.2005, 12:43
    #33413455
developer32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Господа, подскажите может кто знает, задача такая, есть БД в ней определены несколько таблиц,так вот, мне при изменении, например добавлении строчки, нужно выполнять определенный код, который будет оповещать определенное приложение, что добавилась строчка. Приложение, которое нужно оповестить в общем случае находится на другой машине. Может быть можно использовать тригеры или udf.... Я копаю в этом направлении, но пока без результатов. Может кто делал что подобное, подскажите плиз.
...
Рейтинг: 0 / 0
02.12.2005, 13:09
    #33413526
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
WebSphere Information Integrator Replication Edition - лицензия такая.
Она даст вам право пользовать Event Publishing.
Читать файл c1875680.pdf - это Guide по Q Replication and Event Publishing.
...
Рейтинг: 0 / 0
02.12.2005, 13:14
    #33413546
developer32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Не, у нас такой лицензии нету.... Можно как-нибудь попроще, через вызов стороннего файла, который сам сделает что нужно...
...
Рейтинг: 0 / 0
02.12.2005, 13:34
    #33413604
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Берите C++ и пишите что хотите...
...
Рейтинг: 0 / 0
02.12.2005, 13:42
    #33413628
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
ну я бы уточнил - C/C++ :)
люди вон сохраненки и приложения на асме пишут, во монстры.
Надо только тщательнее взвешивать - стоимость лицензии + время с одной стороны, и самописную вещь + временя с другой стороны.
Я, как-то давно, занимался созданием менеджера очередей самописного.
Неблагодарное это дело, вынужден заметить. Вроде поначалу все пучком, и делает что надо - но шаг в сторону, и опять писать кучу. Вот двухфазную транзакцию так и не сделали.
...
Рейтинг: 0 / 0
02.12.2005, 14:15
    #33413724
developer32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Так что нужно написать то, и как оформить, как udf? Я еще раз повторю вопрос, мне нужно чтобы база сама отслеживала изменения своих таблиц(тригер) и по событию, допустим удаление строчки, исполняла бы определенный файл, например test.class, который уже сделает все что нужно.
Нужно по событию исполнить файл. Как?
...
Рейтинг: 0 / 0
02.12.2005, 15:06
    #33413933
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
В 8.2 можно вызвать SP из триггера. Очевидно, SP может быть написана на Java и вызывать этот пресловутый test.class.
...
Рейтинг: 0 / 0
07.12.2005, 09:59
    #33421251
krestianin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Однако есть еще один момент - падение производительности БД,
если на каждую операцию DML повесит сложный вызов, а ведь операции DML могут быть многочисленными.
Даже обычными триггерами не стоит сильно увлекаться.

Наиболее эффективный способ - очевидно чтение журнальных файлов, но сие доступно тока самой IBM. Через этот способ и реализуется и репликация и публикация событий, насколько я понимаю.
...
Рейтинг: 0 / 0
07.12.2005, 10:38
    #33421373
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
krestianin - точно, именно через чтение log'ов и реализовано Q Replication and Event Publishing.
ВОт как раз через event publishing сие доступно не только самой IBM.
...
Рейтинг: 0 / 0
07.12.2005, 17:04
    #33423088
nkulikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Чтение журналов IBM доступно всем смотрите документацию там все прописано. Если есть желание не платить деньги за Q-Replication. Вперед и с песней разрабатывать свой Capture :)
...
Рейтинг: 0 / 0
07.12.2005, 17:15
    #33423135
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
ну да - выставите цену, чуток меньше, чем за WebSphere Information Integrator Replication Edition - и будет вам счастие в лице толп покупателей.
...
Рейтинг: 0 / 0
08.12.2005, 05:40
    #33423827
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Как один из путей решения:
в БД только фиксировать изменение в поле типа timestamp (тем же триггером - это может быть единственная запись в отдельной таблице)
А на клиенте в отдельном потоке (со своей коннекцией) с определенной периодичностью опрашивать БД и пинать основное приложение при изменении в БД между опросами.
...
Рейтинг: 0 / 0
08.12.2005, 20:29
    #33426091
nkulikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
http://www-128.ibm.com/developerworks/db2/library/techarticle/0310mukherjee/0310mukherjee.html


http://www-128.ibm.com/developerworks/db2/library/techarticle/0303mukherjee/0303mukherjee.html
...
Рейтинг: 0 / 0
19.12.2005, 11:20
    #33443600
cyclinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
> именно через чтение log'ов и реализовано Q Replication and Event Publishing.

всё равно придется запрашивать состояние через интервал - само по себе событие не приходит.
...
Рейтинг: 0 / 0
19.12.2005, 11:23
    #33443613
cyclinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
в общем, единственный вменяемый вариант - persistant UDF и сокеты сокеты... :))
...
Рейтинг: 0 / 0
19.12.2005, 11:26
    #33443631
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Событие на изменение таблички должно приходить по COMMIT. Если ты внес какие-то изменения в таблицу, а потом сказал ROLLBACK, то событие не должно передаться. Типа его и не было. Таким образом получается, что надо обязательно ловить COMMIT. А где его поймать кроме как в логе. А если просто пульнуть сообщение, то можно и через MQ-функции, даже из триггера.
или вообще наваять на C/С++ все что душе угодно.
...
Рейтинг: 0 / 0
19.12.2005, 11:29
    #33443640
cyclinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
nkulikov

ну это только если поиграцца - не для серьезных дядек в общем. :)

АХТУНГ:

The procedure waits for a alert message. If there is no message for that alert, it waits for a predefined interval time, then checks again. The default polling interval is 5 seconds, but if the timeout input parameter is set to less than 5 seconds or it is not a multiple of 5 seconds , then the polling interval is set to 1 second.
...
Рейтинг: 0 / 0
19.12.2005, 11:36
    #33443666
cyclinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оповещение стороннего приложения при изменении таблицы
Событие на изменение таблички должно приходить по COMMIT. Если ты внес какие-то изменения в таблицу, а потом сказал ROLLBACK, то событие не должно передаться. Типа его и не было. Таким образом получается, что надо обязательно ловить COMMIT

во многих случаях событие содержит уведомление об изменении состояния, а не кокретные данные -> нужен SELECT и смотрим действительно что-то изменилось или нет(например, из-за отката)
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Оповещение стороннего приложения при изменении таблицы / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]