A csomag megrendelésének és méretének beállítása a változtatásokhoz
Ez a rész ismerteti a kliens adatbázisba a Sync Framework használatával betöltött változók csomagjainak sorrendjét és méretét. Az ebben a részben található példák a Sync Framework szolgáltatások következő típusait és eseményeit tárgyalja:
A mintakódok futtatásával kapcsolatos információkért lásd az "Alkalmazásminták az utasítások részében" című részt a Közös ügyfél- és szerver-szinkronizációs feladatok programozása című részben.
Minden egyes szinkronizált tábla esetében a módosítások a kiszolgálói adatbázisból a következő sorrendben kerülnek kiválasztásra: beillesztés, frissítés és törlés. A változtatások a kliens adatbázisra a következő sorrendben érvényesek: törlés, beillesztés és frissítés. Ha több tábla szinkronizálva van, akkor minden táblázat feldolgozási sorrendjét annak a sorrendnek a határozza meg, amelyben a megfelelő SyncTable objektumot hozzáadták a szinkronizálási ágak tábláinak gyűjteményéhez. Például ha az Ügyfél és a OrderHeader táblázatok ebben a sorrendben kerülnek hozzáadásra, először az Ügyféltábla beillesztései kerülnek kiválasztásra. majd frissítse és törölje. Ezután a OrderHeader táblázatban a változtatások kerülnek kiválasztásra. Az Ügyféllel kapcsolatos összes változást az ügyfélazonosító adatbázisba alkalmazzák egyetlen tranzakció során (ha nem használják az adagolást), akkor a második tranzakció a OrderHeader táblázat módosításait alkalmazza. Ha az Ügyfél és a OrderHeader táblák ugyanarra a SyncGroup objektumra vannak kötve. A mindkét asztal beillesztését, frissítését és törlését egyszer kiválasztja. Minden változás az ügyfélazonosító adatbázisra vonatkozik ugyanazon tranzakció alatt (újra, ha nem használja az adagolást).
A Sync Framework alapértelmezés szerint nem osztja a változásokat csomagokra. A változásokat a kiszolgálóról tölti le, és átmásolja a kiszolgálóra az ügyfél adatbázisból modulként. Számos alkalmazás esetében érdemes megosztani a változásokat kisebb csomagokba. Ha például a szinkronizálási munkamenet megszakad, újraindíthatja a szinkronizálást az utolsó csomagból, és nem küldhet változtatásokat. Előfordulhat, hogy teljesítménynövekedés tapasztalható, mivel az ügyfelet bármikor, kisebb változatcsomaggal kell kezelni. Mindezen előnyöket figyelembe véve a Sync Framework lehetővé teszi az alkalmazások számára az ügyfélcsomag módosításainak letöltését (amikor kiszolgálóra küldi, a csomagolás nem támogatott).
A kötegelt feldolgozás engedélyezéséhez értéket kell rendelnie a BatchSize tulajdonsághoz. és állítsa a SelectNewAnchorCommand tulajdonságot egy parancsra, hogy visszaadja az egyes változócsomagok horgonypont-értékeit. Csomagolás nélkül az alkalmazások az új és a legutóbbi kötési értékeket használják a teljes letöltési változat felső és alsó határának meghatározására. További információ: Az első lépések: Az ügyfél és a kiszolgáló szinkronizálása. Az adagolás során a maximális megkötött érték határozza meg a teljes változat felső határát, és az új és az utolsó kötési érték határozza meg az egyes változócsomagok felső és alsó határát. A SessionProgress esemény kényelmes módja a szinkronizálás előrehaladásának monitorozására, és a BatchProgress tulajdonság lehetővé teszi a futásidejű információk elérését a csomag szintjén.
Az alábbi kód példák bemutatják az Ügyfél és a OrderHeader táblák szinkronizálását a Sync Framework adatbázismintában. A táblázatok módosításai csomagokban vannak betöltve, csomagonként 50 változtatással. Az eredeti szinkronizálás 10 sorot tartalmaz. Minden sor egy csomagban kerül betöltésre és egy tranzakcióban kerül alkalmazásra. Az ezt követő szinkronizálás 92 sorból két csomagban történik. Minden csomag tartalmazza az Ügyféltáblázat és a OrderHeader táblázat módosításait. és minden csomag külön tranzakcióban kerül alkalmazásra.
Az API legfontosabb elemei
Ez a szakasz kódkódokat mutat be, amelyek bemutatják a kulcsfontosságú API elemek használatát a változások egyszerűsítésére és csomagolására. A következő kód példa egy olyan osztály, amely a SyncAgent osztályból származik. Ez a kód létrehoz egy SyncGroup objektumot az Ügyfél és a OrderHeader táblákhoz.
A következő kódpélda olyan tárolt eljárást hoz létre, amely új kötési értékeket, a maximális kötési értéket és a beágyazási és frissítési csomagok aktuális számát adja ki. Ez az eljárás lehetővé teszi a kiszolgálószinkronizáló szolgáltatás számára, hogy kiválassza a változási csomagokat a kiszolgáló adatbázisából. A tárolt eljárás logikája példaként szolgál. Bármelyik logikát akkor lehet használni, ha a megadott értékeket adja ki. A példakód egyik korlátozása az, hogy üres csomagokat lehet létrehozni, ha a sztringelés több mint 50-szer változott a szinkronizálás között. Ezt a logikát hozzá lehet adni.