Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Поймать событие DB2  [new]
BagaBaga
Member

Откуда: прекрасное далеко
Сообщений: 667
Есть приложение на CBuilder на ADOComponents.
Вопрос: как в приложении "подписаться" на событие изменения набора данных (обновление, вставка, удаление) для конкретной таблицы. Скачем, сто-то вроде ibAllert.
Просто надо обеспечить актульность представляемых данных, а Server Side Cursor установть не получится.
11 мар 06, 16:13    [2438236]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2550
Как я понимаю, речь идёт об уникальной фиче Interbase. Здесь такое не выйдет. Можно пофантазировать на тему UDF, посылающей сигнал по UDP, MQ Series и подобных вещей, но это ручная работа.
12 мар 06, 19:49    [2439624]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
BagaBaga
Member

Откуда: прекрасное далеко
Сообщений: 667
Victor Metelitsa
Можно пофантазировать на тему UDF, посылающей сигнал по UDP, MQ Series и подобных вещей, но это ручная работа.

Я не против ручной работы. Просто не совсем (совсем не) освоился с DB2. Пользую версию 7.1 + до Update11включительно (если важно) на Win2000Srv.
Если возможно, объясните немного подробнее.
Нет, я знаю, что можно посадить триггер на событие, скажем instert, по которому бы выполнялось SEND SQl SIGNAL (вроде так, пишу по памяти). Но не понятно, как эти порождаемые события ловить в Билдере. Понятно, конечно, что породится исключение, но как их не перекрыть с системными (там SQL и цифирь), да и не совсем понятно, как их удобно отловить.
PS
Не знаю, что есть такое MQ Series и как это может помочь в данной проблеме. Если можно, для чего это в двух-трех фразах (любопытно, хотя и немного стыдно такое спрашивать)
12 мар 06, 23:58    [2439967]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2550
SIGNAL выбросит exception для того, кто изменяет данные, и только для него. А вам нужно совсем другое - широковещательное сообщение для подписчиков, которых потенциально много больше одного. DB2 тут ничего не предоставляет. Вы можете взять C и написать UDF, занявшись низкоуровневым программированием, всякими там TCP/IP/UDP.

MQ Series, ныне переименованная в WebSphere MQ, управляет сообщениями. Как я понимаю "теоретически", вы можете положить в триггере сообщение об изменении в очередь, адресаты его получат и узнают, что что-то изменилось.

На практике я с MQ Series не знаком.
13 мар 06, 09:05    [2440337]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
ggv
Member

Откуда:
Сообщений: 1810
не надо ломать голову (хотя.... иногда полезно, и в этом случае тоже)
А надо ставить II Replication Edition (достаточно лицензию оплатить) - для вас это означает миграцию на DB2 V8.X и настроить Event Publishing.
Он для этого и предназначен, и по своей реализации будет заведомо быстрее доморощенных способов. На MQ можно будет организовать полноенный Publish/Subscribe сервис, в нем есть брокер для этого, а ежели добавить Message Broker (advanced ESB) то получится публикация данных в корпоративную шину, которая кроме стандартных своих функций (динамическая маршрутизация сообщений, трансформация формата сообщений, конвертация протоколов передачи сообщений) может содержать еще и бизнес логику (кое в чем доходя до уровня управления бизнес процессами)
Это все так, для общего развития - раз уж вы на db2 V7.1, то вряд ли будете покупать Message Broker V6.0
13 мар 06, 09:54    [2440482]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2550
Кажется немного тяжеловатым для банального авторефреша грида, показывающего базоданновую табличку.
13 мар 06, 10:02    [2440499]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
Nikolay Kulikov
Member

Откуда: Москва
Сообщений: 607
Ну у компании IBM только промышленные решения. :)
Если попроще это вы уже сами как-нибудь на коленке :)
13 мар 06, 10:33    [2440635]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
ggv
Member

Откуда:
Сообщений: 1810
Viktor - тяжеловатость могу оспорить
Event Publsighing + MQ Publish/Subscribe == очень простое и легкое, настраиваемое, а не написуемое решение. Сам продукт MQ на удивление легковесный.
Да и вообще - это скорее всего ToolKit а не продукт, весь такой вот легкий, удобный, и продуманный.
Начинался изначально как разработанный API - MQI, очень удачно и гениально разработанный, и за десятиления не изменяемый. Только потом, другая компания по заказу IBM сделала первую реализацию этого API. Ну а вторую и последующие делала сама IBM в святом месте - Hursley, Hampshire, UK.
А транспортный уровень составляет, если не вру название, MCP, Message Channel Protocol, который и делает то самое гарантированное однократное деливери сообщения с минимальными затратами. То есть тоже по-уму все реализовали, изначально, без последующих переделок.
Могу только повторить мое убеждение, что наличие DB2 LUW (с некоторыми расширениями как-то QUery Patroller, тот же Replication Edition добавился и прочее, перечислять не буду), MQ, Message Broker, позволяют быстро построить ИС практически любого уровня сложности (без визуализации).
13 мар 06, 10:55    [2440762]     Ответить | Цитировать Сообщить модератору
 Re: Поймать событие DB2  [new]
ggv
Member

Откуда:
Сообщений: 1810
кстати, если поднять мои посты несколько-летней давности, то мнение об MQ у меня было другое.
Дык в то время я , гм, возглавлял проект по созданию/развитию своей системы, доморощенной, которую называли "репликатор очередей", и которой мы немного даже гордились.
Но когда потребовалась XA поддержка, и спросили - как быстро мы способны ее добавить, то мы быстро мигрировали на MQ, благо много в приложениях переделывать не пришлось, и в менталитете тоже. Оказалосб быстрее, и в конечном итоге дешевле.
13 мар 06, 13:47    [2441906]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить