Technischer Ablauf der Synchronisation mit NAV 2013 R2

Veröffentlicht: 3. Juli 2014 in Tipp
Schlagwörter:

Hi NAV-Anwender und Entwickler :),

seit NAV 2013 R2 (bzw. seit der Multi Tenancy Funktion) hat Microsoft die Aktualisierung einer Änderung in der Datenbank umgekrempelt. Wir waren es vorher alle gewohnt, dass man ein Objekt speichert und dies direkt in der SQL Datenbank gesichert und für alle im Zugriff ist. Dies ist nun nicht mehr so!! Nach meinen Gesprächen mit anderen Fachleuten (unter anderem MS), Tests und Analysen und lesen diverser Blogeinträge läuft die Synchronisation nun so ab:

  1. Beim kompilieren wird das Objektes in die „Object Metadata“ geschrieben. Zu diesem Zeitpunkt ist es NOCH NICHT auf dem SQL Server und somit auch nicht im Zugriff des Service Tiers.
  2. Es existiert in der „Object Metadata“ SQL Ebene ein Tabellen Trigger. Dieser füllt beim Löschen, Ändern und beim Einfügen die „Object Tracking“ Tabelle. In dieser steht das geänderte Objekt mit einem Timestamp.
  3. Während der Synchronisation der Objekte (siehe Beitrag Synchronisation via Powershell) wird mit der „Objekt Tracking“ Tabelle geprüft, ob es Änderungen gibt. Genauer gesagt überprüft die Anwendung hier mittels des Timestamps ob neue Änderungen existieren und welches Objekt übertragen werden muss (Vermute in der „Object Tracking“).
  4. Gibt es Änderungen für ein Objekt, wird dieses physikalisch in die SQL Datenbank geschrieben.
  5. Daraufhin wird der Stand in die „Object Metadata Snapshot“ übertragen.

Das bedeutet: Ist in der „Object Metadata Snapshot“ kein aktueller Datensatz des geänderten, eingefügten oder gelöschten Objektes enthalten, ist die Synchronisation nicht erfolgreich abgeschlossen worden.
Des Weiteren vermute ich, dass beim neustart des Servicetiers immer die aktuellste Version aller Objekte geladen werden und Schritt 4 und 5 durchgeführt wird.

Falls wer weitere Informationen und/oder Korrekturen diesbezüglich hat, bitte her damit. Ein sehr interessantes und wichtiges Thema.
Mit freundlichen Grüßen,
Matthias König

P.S. hier auch eine Zusammenfassung von Saurav Dhyani des MS Kommentars:  Saurav Dhyanis „NAV 2013 R2 Synchronization Paradigm.“
Dieser beschreibt nahezu den selben Ablauf wie ich hier 🙂

Advertisements
Kommentare
  1. Natalie sagt:

    Für Partner ist zu diesem Thema gerade erst ein deutsprachiges (!) Whitepaper von Microsoft erschienen:
    https://mbs.microsoft.com/partnersource/germany/news-events/news/Vermeiden-von-Datenverlusten-bei-Migration-auf-NAV-2013-R2

  2. Mitch sagt:

    Das heißt im Umkehrschluss nach einer Massendatenänderung in bspw. einer Personenkontentabelle reicht es die Dienste der Nav-logik neu zu starten!?

  3. Hi Mitch, in dem Beitrag ging es um die Synchronisation der Objekte (Struktur, Datentyp) und nicht der Daten (Änderungen des Inhalts wie z.B. der Beschreibung). Falls du aber mehrere Dienste (Servicetiers) hast und die Daten zwischen diesen nicht Synchron sind hilft genau das oder ich meine das auch SELECTLATESTVERSION hilft 🙂

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s