Как использовать пакетную обработку с пользовательским отслеживанием изменений в Sync Framework 2.1? - PullRequest
2 голосов
/ 05 февраля 2011

В Sync Framework 2.1 пакетная обработка, по-видимому, имеет встроенную поддержку, поэтому в некоторых провайдерах мы можем просто указать размер пакета и местоположение файла буфера (и некоторые другие атрибуты), и пакетная обработка будет решена , Разработчикам не придется писать собственную логику пакетирования.

Однако это работает только с несколькими провайдерами, такими как SqlSyncProvider или DbSyncProvider, которые, кажется, обслуживают отслеживание изменений сервера SQL. Более ранние провайдеры, такие как ClientSyncProvider и DBServerSyncProvider, которые позволяют настраивать отслеживание изменений, не имеют особых улучшений. Любая идея, как мы можем использовать новую функцию пакетирования и при этом сохранить нашу собственную логику отслеживания изменений?

У нас нет возможности перейти к встроенному отслеживанию изменений, поскольку наша пользовательская логика обрабатывает несимметричные базы данных (где база данных сервера многопользовательская, а база данных каждого клиента - один арендатор).

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

Мы, наконец, решили реализовать наше собственное решение для пакетной обработки - запустить метод синхронизации в цикле, сократив разрыв между last_sync_anchor и new_sync_anchor до 500 или около того.

Хотя это далеко от идеала (по сравнению с реализацией MS использования размера байта в качестве ограничивающего фактора), это работает для нас и позволяет нам придерживаться нашей пользовательской реализации отслеживания и синхронизации изменений.

1 голос
/ 21 февраля 2011

Пакетная обработка поддерживается только SqlSyncProvider. Вы можете до некоторой степени контролировать пакетирование в DbSyncProvider, установив свойство MemoryDataCacheSize. Однако плохая новость заключается в том, что если вы используете более раннюю версию, у вас не так много вариантов ...

...