powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA - репликация данных
6 сообщений из 6, страница 1 из 1
ASA - репликация данных
    #32417885
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с таким финтом: на удаленной базе ИЗ ТРИГГЕРА пересчитал таблицу с промежуточными итогами (специально, чтобы данные не пришли в консолидированную базу. В удаленной базе ее слегонца перекосило благодаря некоторым несанкционированным операциям, а заново выливать всю базу из-за одной таблицы было лень), эта таблица участвует в репликации.
С первым же пакетом репликации получил кучу гадости: таблица решила таки прийти в консолидированную базу, при этом естественно страшно материлась потому что данные в ней уже были (соответственно получили при каждой попытке INSERT'а отлуп - первичный ключ уже существует).
Я ничего не понял, даже специально скачал русскую доку по репликации (она мелькала в этом форуме). Там русским по белому написано: ДАННЫЕ, ФОРМИРУЮЩИЕСЯ В ТРИГГЕРЕ, В РЕПЛИКАЦИИ НЕ УЧАСТВУЮТ.
Тогда что это было???
...
Рейтинг: 0 / 0
ASA - репликация данных
    #32418013
roleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратите внимание на ключ -t при запуске dbremote
...
Рейтинг: 0 / 0
ASA - репликация данных
    #32418164
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, насколько я помню, -t как раз таки делает то что мне НЕ нужно - включает в репликацию то, что происходит в триггере. На самом деле, это удобно-делать всякие гадости в триггере и знать что они никуда не приедут. А сейчас получилась фигня редкостная: 3 часа агент ругался на то, что я сделал в триггере. Трындец. :( Все матерились, громче всех я
...
Рейтинг: 0 / 0
ASA - репликация данных
    #32418327
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А из триггера случайно процедурка, функция или событие не вызываются ?
Если да - то ищите там ...
...
Рейтинг: 0 / 0
ASA - репликация данных
    #32418571
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вызывается там ничего. Триггер специальный, называется bugfix и сделан на таблицу с таким же названием, она в репликации не участвует :)
Все что там делается - пересчитывается промежуточная таблица (несколько select во временную, потом truncate нужной таблицы и заливка в нее посчитанных данных)
...
Рейтинг: 0 / 0
ASA - репликация данных
    #32418644
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем ASA считает (и правильно считает на мой взгляд) что удаленная и консолидированная базы обе имеют одинаковые триггеры на реплицируемые данные. Соотвественно все то что произошло в базе под воздействием триггера в сообщение репликации не попадает, предполагается что во второй базе отработает аналогичный триггер. Если во второй базе такого триггера нету, то тогда и надо использовать ключик -t.

Однако, существует странная баго-фича, заключающаяся в том, что триггеры в процессе репликации запускаются в какой-то отдельной сессии. И все изменения произведенные триггером не видны для обрабатываемого сообщения. В итоге получаем следующую картину:
На базе ДБ1
1) Клиент сделал что-то, что инициировало триггер.
2) Триггер изменил что-то в базе (строку добавл например).
3) Клиент в этой же сессии видит результат работы триггера и вручную делает исправление данных после триггера.
4) Клиент посылает коммит.
А на базе ДБ2 вместо клиента работает dbremote и тут обнаруживается что изменения в таблице сделаные триггером не видны. Однако есть запись о ручном исправлении данных - dbremote пытается наложить эти изменения. Что получится в итоге - никому не известно. Потом следует коммит и только после него становится видно что там триггер чего-то сделал.

Метод лечения - клиент должен делать коммит после пункта номер 2.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA - репликация данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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