Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
mobilink и "длинные" транзакции
|
|||
|---|---|---|---|
|
#18+
asa 902.3546 Есть ML синхр. ASA-ASA по timestamp полю. Есть проблемы с "длинными" транзакциями на сервере. В качестве примера, есть таблица в главной БД, которая включена в синхронизацию, и тригер для задержки вставки на <XX> секунд: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Если на сервере сделать Код: plaintext 1. И в это время удаленный клиент за <XX> сек. успевает синхронизироваться, то данная запись из test_table будет пропущена для этого клиента. Вопрос - как правильно это дело решить? Заранее спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 14:36 |
|
||
|
mobilink и "длинные" транзакции
|
|||
|---|---|---|---|
|
#18+
Марсель wrote: > Если на сервере сделать > > insert into test_table(col1) values(*1*); > commit; > > > И в это время удаленный клиент за <XX> сек. успевает синхронизироваться, > то данная запись из test_table будет пропущена для этого клиента. > > Вопрос - как правильно это дело решить? Триггер-то работает внутри INSERT-а, и внутри транзакции. Пока транзакция не закончится, эта запись в репликацию не уйдет, как я понимаю. Так что таким вот способом, как я понимаю, никак. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 16:57 |
|
||
|
mobilink и "длинные" транзакции
|
|||
|---|---|---|---|
|
#18+
МарсельВопрос - как правильно это дело решить?хы.... нууууу..... можно сделать дополнительную процедуру которая будет "завершать" транзакцию. Что то в духе: Код: plaintext 1. 2. 3. 4. 5. А еще можно (и наверное будет правильнее) повесить пару обработчиков на sp_hook_dbmlsync_begin и sp_hook_dbmlsync_log_rescan а в них уже записывать время старта очередной синхронизации и решать надо ли запустить повторное сканирование лога. Сам я такое не делал, и какие там подводные камни не знаю, но судя по BOL это то в чем надо поковыряться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2007, 17:46 |
|
||
|
mobilink и "длинные" транзакции
|
|||
|---|---|---|---|
|
#18+
MasterZiv Триггер-то работает внутри INSERT-а, и внутри транзакции. Пока транзакция не закончится, эта запись в репликацию не уйдет, как я понимаю. Так что таким вот способом, как я понимаю, никак. Posted via ActualForum NNTP Server 1.4 В ML синхр. на сервере (по умолчанию) включается уровень изоляции = Read commited, и пока транзакция не закончится курсоры на download не увидят этой строки, это так и есть. Но дело в том, что строка вообще никогда не попадет в синх. данному клиенту. Например, транз. началась во время t1, поле last_updated примет значение t1 (ну или очень близкое к этому значение), клиент начнет синхронизацию во время t1+dt1, и закончится в t1+dt2, где dt1 < dt2 < <XX>. И в след. синхронизацию для данного клиента курсор будет иметь вид Код: plaintext под условия которого эта строка не подпадает все это имхо, я так понимаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 11:17 |
|
||
|
mobilink и "длинные" транзакции
|
|||
|---|---|---|---|
|
#18+
White OwlА еще можно (и наверное будет правильнее) повесить пару обработчиков на sp_hook_dbmlsync_begin и sp_hook_dbmlsync_log_rescan а в них уже записывать время старта очередной синхронизации и решать надо ли запустить повторное сканирование лога. Сам я такое не делал, и какие там подводные камни не знаю, но судя по BOL это то в чем надо поковыряться. эээээ.... ну..... :) sp_hook_dbmlsync_... это вроде для клиентов, а проблема возникает на стороне сервера, есть тут пара событий modify_last_download_timestamp modify_next_last_download_timestamp пойду курить Спасибо за советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2007, 11:31 |
|
||
|
mobilink и "длинные" транзакции
|
|||
|---|---|---|---|
|
#18+
в одном из ebf asa было обновление мл_сервера, в котором позволялось задавать опцию при которой мл_сервер запоминал не дату начала download транзакции МЛ, а дату начала самой ранней транзакции во всей базе, которая была активна до начала той-же download транзакции . Как писалось это для сереров ASE, потому я тогда подумал что данной проблемы в аса нету. т.к. по поведению аса на изоляции 1 вставленная незакомиченная строка не должна бы игнорироватся как в ASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2007, 14:53 |
|
||
|
|

start [/forum/topic.php?fid=55&tid=2011745]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 390ms |

| 0 / 0 |
