Ab NAV 2017: Einfaches Prüfen und Beheben von Datenbank-Sperren

Tipps&Tricks für NAV Anwender

Vielleicht haben Sie auch schon einmal folgende Meldung gesehen?



Diese Meldung bekommen Sie, wenn Sie versuchen eine Aktion in NAV auszuführen und diese nicht abgeschlossen werden kann. Zu diesem Zeitpunkt sperrt ein anderer Benutzer durch seine Aktionen die Daten und Sie können diese dadurch nicht verändern.
In den letzten Versionen von NAV war es nur sehr schwer möglich herauszufinden durch welchen Benutzer diese Sperre verursacht wurde. In NAV 2017 hat Microsoft nun eine Möglichkeit eingebaut um diese Probleme einfach zu erkennen und direkt einem bestimmten Verursacher zuzuordnen.
Dazu wurden die Diagnosewerkzeuge, die in NAV enthalten sind, um neue Funktionen erweitert. Eine genauere technische Beschreibung zur Lösung mit NAV 2017 finden sie im Folgenden.

Technische Lösung

Durch einige Neuerungen innerhalb von NAV 2017 ist es inzwischen sehr einfach die Ursache für langlaufende Sperren zu ermitteln und zu beheben.
Die erste wichtige Neuerung ist, dass man nun in den Diagnosewerkzeugen (Debugger) feststellen kann wie lange eine Sitzung eines bestimmten Benutzers den derzeitigen Programmcode ausführt. Dies ist im rot markierten Feld des folgenden Bildschirmausschnittes zu sehen:



Wichtig: Durch die Unterbrechung im Debugger wird die Laufzeit wieder zurückgesetzt, beim Fortfahren beginnt die Anzeige also wieder bei 0:00.
Die wichtigste Neuerung findet sich allerdings in den Entwicklungswerkzeugen (Development Client) unter dem Menüpunkt „Extras -> Debugger -> Datenbanksperren“. Den Aufruf dazu in der Anwendung finden sie im nächsten Bild:



Wenn Sie diesen Menüpunkt auswählen, erhalten Sie nachfolgende Übersicht. In dieser sehen Sie alle aktiven Sperren innerhalb der Datenbank die durch verschiedene Benutzer von NAV verursacht wurden.



Dabei sehen Sie nicht nur den Benutzer, sondern auch das ausgeführte Objekt und die dazugehörige Methode des Programmcodes.
Damit Sie diese Funktion im Development Client nutzen können müssen folgende Voraussetzungen gegeben sein:

  • Der Benutzer unter dem der „Service Tier“ läuft muss in der Gruppe „db_owner“ der jeweiligen SQL-Datenbank sein. (Dies sollte unabhängig von der Benutzung der neuen Funktion der Fall sein. Andernfalls würde eine falsche Konfiguration des SQL-Servers vorliegen)
  • Wenn der Benutzer unter dem der „Service Tier“ läuft nicht in der Gruppe „Sysadmin“ des SQL-Servers enthalten ist (Anmerkung: Dies ist nicht zwingend notwendig), dann sollte er alternativ diese Rechte besitzen:
    "ALTER ANY EVENT SESSION" und "VIEW SERVER STATE"
    (Anmerkung: „VIEW SERVER STATE“ sollte jeder Benutzer besitzen)
  • In der Einrichtung der „Service Tier“ muss "Enable Deadlock Monitoring" eingeschaltet sein (Anmerkung: Standardmäßig ist dies der Fall):



Sie interessieren sich für Microsoft Dynamics NAV? Sprechen Sie uns an! In Karlsruhe erreichen Sie uns unter +49 721 27662-0 und in Berlin unter +49 30 435500-0 . Wir beraten Sie gern.

[veröffentlicht am 13.01.2017]

 

zurück