2016-06-17 8 views
1

У меня есть таблица A в corp и store узел, который имеет перед обновлением и вставкой триггеры. Триггер просто обновляет другой столбец в текущей строке, который обновлен/вставлен. А также я был настроен sync_on_incoming_batch=1.SymmetricDS Обновление на основе триггеров не может маршрутизировать

Но проблема в том, что когда строка вставлена ​​из corp, тогда столбец обновляется триггером по адресу store. Вызывается sync_on_incoming_batch, но он не может перейти на узел corp.

Я также был установлен ping_back_enabled=1, и вам удалось снова синхронизировать с corp узел, но цикл обновления произошел. Как справиться с этим?

Я думаю, sym_conflict может справиться с этим, но я понятия не имею.

ответ

0

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

+0

1k + строка цикла обновления, я думаю, что это не эффективно. Каковы критерии одной строки, можно отправить обратно на последний узел? –

+0

Как изменить критерии одной строки можно отправить обратно на последний узел? Я хочу изменить маршрутизацию на основе первичного ключа на всю маршрутизацию на основе столбца –

+0

, потому что когда маршруты возвращаются, работа сравнивает только его PK, а не весь столбец –

0

Вы пытаетесь разрешить изменения из Магазина 1 для отправки в Корпорейт, а затем отправить обратно в Store 2? Если это так, вам понадобятся два набора триггеров. Установлен один набор, установленный на корпусе с флагом «sync on incoming». Другой набор с синхронизацией при входящем не проверяется и применяется к хранилищу. Это позволяет изменениям, отправленным из corp для хранения, чтобы остановить их, а не цикл. В качестве альтернативы он позволяет изменениям из хранилища 1 ударить corp и синхронизировать их со всеми другими узлами магазина, кроме магазина 1.