[gelöst] Tabellensperrung

29. November 2010 13:52

Hallo,
ich habe folgendes Problem in NAV 5.0 / SQL Server 2005

Wir haben eine Scannerlösung von Synko im Einsatz. Diese Scannerlösung bucht in einem Mandant einen Warenausgang. Wir haben einen Produktions- und einen Vertriebsmandanten. Die Kundenaufträge werden automatisch durch die Lieferanten hindurchgereicht. D.h. ein im Vetriebsmandant erfasster Auftrag wird über eine Zwischentabelle in den Produktionsmandanten synchronisiert.

Auf dem NAS läuft das Scannerprogramm im Produktionsmandant. Auf dem gleichen Server habe ich einen lokalen NAV Client im Vertriebsmandant laufen. In der Zwischentabelle zur Synchronisierung wird ein Kennzeichen gesetzt, wenn eine Lieferung zu buchen ist. Der Vertriebsmandant scannt das Zeichen ab und bucht dann die zugeordnete Einkaufbestellung und eine Verkauflieferung im Vertriebsmandant.

Das klappt auch soweit.

Da die Aufträge jedoch viele Positionen beinhalten können, dauert der Vorgang einige Sekunden. Wenn nun z.B. ein neuer Auftrag erfasst wird, kann es passieren, dass die Zwischentabelle durch einen User für den NAS Client gesperrt wird.

Das kommt auf dem Server die Fehlermeldung "Tabelle xy wird durch einen anderen User gesperrt..."

Dann kommt der gesamte Ablauf zum Stehen, bis man die Meldung auf dem Server quittiert.

Kann man die Meldung irgendwie automatisch quittieren oder vermeiden?

Gibt es andere Lösungsvorschläge?

Mit "Locktable" bin ich nicht weitergekommen.
Zuletzt geändert von rallnus am 30. November 2010 10:57, insgesamt 2-mal geändert.

Re: Tabellensperrung

29. November 2010 20:15

Hi!

Geht es hier um einen nativen C/SIDE Server oder um SQL Server?

Re: Tabellensperrung

30. November 2010 09:00

sorry, ich dachte ich hätte es erwähnt: SQL Server 2005, demnächst 2008.

Re: Tabellensperrung

30. November 2010 09:27

OK, dann wäre der Erste Schritt zur Besserung bekanntlich die Erkenntnis ...

Den Details der Blocks (oder Deadlocks?) auf die Schliche zu kommen ist noch relativ einfach, Blocks zu lösen kann aber ggf. ziemlich fies sein.
Vielleicht kann Dir das hier für den Anfang helfen:

http://dynamicsuser.net/blogs/stryk/archive/2008/11/03/blocks-amp-deadlocks-in-nav-with-sql-server.aspx
http://dynamicsuser.net/blogs/stryk/archive/2010/05/19/decisions-spring-2010-nav-sql-performance-blocks-and-deadlocks.aspx

Im Anhang findest Du die nötigen SQL Scripts (AS IS, NO WARRANTY, NO GUARANTEE, NO SUPPORT, USE AT OWN RISK).
(Das Ganze Verfahren ist eine "Light Version" aus der "NAV/SQL Performance Toolbox")
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Tabellensperrung

30. November 2010 10:56

vielen Dank.