|
|
|
АСА 9.0.1.1889 - Интересный баг(???) с подписками
|
|||
|---|---|---|---|
|
#18+
Попробую обьяснить на словах, скрипта, к сож., нет. Есть консолидированная и удаленная база. В удаленной базе естественно есть консолидейтед юзер (c_user). Который в том числе подписан на таблицу (t_table) по полю (base_id). Предположим в консолидированную базу должны попадать не все строки из t_table, а только с base_id=1 (т.е. c_user подписан на t_table по полю id_base на значение 1). Так вот, если в удаленной базе сделать процедуру, в которой определить курсор, в котором добавлять или апдейтить строки с base_id=1 и base_id=2, то в консолидированную базу приедут ВСЕ изменения сделанные внутри курсора. Почему так? (М.б. из-за того, что в лог весь курсор попадает одной транзакцией???) Это баг или фича? Интересно, в обратную сторону (от консолидированной базы к удаленной) так же? А как бороться? Внутри курсора стартовать транзакции и их завершать можно? Поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 09:50 |
|
||
|
АСА 9.0.1.1889 - Интересный баг(???) с подписками
|
|||
|---|---|---|---|
|
#18+
Уточни пожалуйста, речь идет о курсоре или о процедуре? :) Вообще-то, если там процедура, то в репликацию должны попадать только подходящие в условие изменения. В BOL об этом прямо говорится: BOL SQL Remote User's Guide Principles of SQL Remote Design How statements are replicated Replication of procedures -------------------------------------------------------------------------------- Any replication system is faced with a choice between two options when replicating a stored procedure call: Replicate the procedure call A corresponding procedure is executed at the replicate site, or Replicate the procedure actions The individual actions (INSERTs, UPDATEs, DELETEs and so on) of the procedure are replicated. SQL Remote replicates procedures by replicating the actions of a procedure. The procedure call is not replicated. -------------------------------------------------------------------------------- А вот если вызов процедуры идет из курсора или триггера, то это уже расценивается как атомарная операция и в сообщение репликации пойдет вызов процедуры. Соотвественно на консолидированной или удаленой базе этот вызов будет повторен с такими же параметрами. Ну и копия процедуры на базе-получателе сделает такие же изменения, не взирая на всякие репликационные фильтры (их на этапе получения уже нету :)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 18:50 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32763937&tid=2014121]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 489ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...