Merge Replikation

19/06/2008 - 10:08 von Rolf | Report spam
Hallo zusammen
wir haben einem Kunden eine Anwendung erstellt, bei der
Außendienstmitarbeiter mit Laptops Ihre Daten mit einer Zentrale über einen
Merge-Replikationsmechanismus abgleichen können.
Auf zwei zentralen Tabellen beobachten wir hierbei, dass sich dort (immer
mal wieder) alte Datensàtze scheinbar selbsttàtig zurückspielen. Wir haben
folgendes Szenario auf der Zentrale:

Zeitpunkt 1) Zeile A (Erstellung des Datensatzes)
Zeitpunkt 2) Zeile A->B (Datensatz wurde veràndert auf Laptop 1 und wird
über Merge Replikation eingespielt)
Zeitpunkt 3) Zeile B->C = A (nach Replikation mit Laptop 2, auf dem die
Variante B noch nicht bekannt war)

Die Zeilen C und A sind in jeder Spalte identisch. Da jede Zeile in der
betroffenen Tabelle einen Zeitstempel ihrer letzten Änderung tràgt, ist
ausgeschlossen, dass die C durch manuelle Änderungen herbeigeführt wurde und
nur zufàllig die gleichen Inhalte aufweist. Tatsàchlich sind die Zeilen A und
C vollkommen identisch. Die alte Version A wird nachweislich im Rahmen der
Replikation von einem Laptop, auf dem die Version B noch nicht bekannt war
via Merge-Replikation re-etabliert. Zu einem Konflikt kommt es hierbei nicht.
Betroffen sind bislang ca. 0,3 Prozent der Datensàtze.

Frage: Ist dieses Phànomen jemandem bekannt? Gibt es einen Workaround oder
einen Patch?

Danke
Rolf
 

Lesen sie die antworten

#1 Reiner Wolff
23/06/2008 - 10:33 | Warnen spam
Moin Rolf,

*Rolf* schrieb:
wir haben einem Kunden eine Anwendung erstellt, bei der
Außendienstmitarbeiter mit Laptops Ihre Daten mit einer Zentrale über einen
Merge-Replikationsmechanismus abgleichen können.
Auf zwei zentralen Tabellen beobachten wir hierbei, dass sich dort (immer
mal wieder) alte Datensàtze scheinbar selbsttàtig zurückspielen. Wir haben
folgendes Szenario auf der Zentrale:

Zeitpunkt 1) Zeile A (Erstellung des Datensatzes)
Zeitpunkt 2) Zeile A->B (Datensatz wurde veràndert auf Laptop 1 und wird
über Merge Replikation eingespielt)
Zeitpunkt 3) Zeile B->C = A (nach Replikation mit Laptop 2, auf dem die
Variante B noch nicht bekannt war)

Die Zeilen C und A sind in jeder Spalte identisch. Da jede Zeile in der
betroffenen Tabelle einen Zeitstempel ihrer letzten Änderung tràgt, ist
ausgeschlossen, dass die C durch manuelle Änderungen herbeigeführt wurde und
nur zufàllig die gleichen Inhalte aufweist. Tatsàchlich sind die Zeilen A und
C vollkommen identisch. Die alte Version A wird nachweislich im Rahmen der
Replikation von einem Laptop, auf dem die Version B noch nicht bekannt war
via Merge-Replikation re-etabliert.



Das beschriebene Verhalten widerspricht der MergeReplikation.
Hast du zum Vergleich der beiden Datensàtze Dich auch einmal in den
Systemtabellen zur MergeReplikation umgeschaut?
Denn normaler Weise wird iirc der Merge nur für Datensàtze durchgeführt,
deren Timestamp sich veràndert hat. Wenn Laptop B den Datensatz aber nicht
angefasst hat, dürfte sich hier auch nichts geàndert haben.

Enthàlt vielleicht die Tombstone-Tabelle Eintràge, die mit Deinen
Datensàtzen zusammenpassen?

Zu einem Konflikt kommt es hierbei nicht.



Das hast Du wie festgestellt?
Erstmal klingt es ja so, als ob ein Konflikt auftritt, der zugunsten von
Laptop B automatisch gelöst wird.

Gibt es auf dieser Tabellen/Datenbank noch weitere Replikationen?
Auf welchem SQL-Server arbeitest Du überhaupt?
Wie ist der genaue Tabellenaufbau bzgl. der Replikationsspalten?

Betroffen sind bislang ca. 0,3 Prozent der Datensàtze.



Làsst sich das festgestellte verhalten reproduzieren?

Frage: Ist dieses Phànomen jemandem bekannt?



Mir nicht.
Ich habe seit Jahren eine derartige Replikation mit 80 Laptops im Einsatz.

Gibt es einen Workaround oder
einen Patch?



Wenn Du Fehler im MergeAgent vermutest, könnte es Dir noch weiterhelfen,
wenn Du mal in den Agenten gehst und beim Start des Agenten die Parameter
-OutputVerboseLevel 3 -OutputTo C:\Merge.log
hinzufügst.
Danach solltest Du ein etwas ausführlicheres Protokoll einsehen können.
Vielleicht wird da ja ein Fehler aufgezeichnet.

Ansonsten hilft Dir in solchen Fàllen der kostenpflichtige Support von
Microsoft weiter. Mache dort ein Support-Case auf.

HTH
Gruß aus Kiel
Reiner
Debuggers don't remove Bugs, they only show them in Slow-Motion.

Ähnliche fragen