Problem mit doppelten Sessions

8. April 2010 16:22

Hallo zusammen,

wir steuern über ein zusätzliches Feld (Anzahl erlaubte Sitzungen) der Tabelle 91 in der Cu 1 ob ein User eine zusätzliche Sitzung öffnen darf oder nicht. Darf keine zusätzliche Sitzung geöffnet werden, schließen wir über SendKeys den Client.
Das Problem ist, dass die NAV Sessionverwaltung abgestürzte Sitzungen oder beendete Sitzungen nicht immer aus der Sessiontabelle löscht und dadurch eine neue Sitzung geöffnet wird. Außerdem kommt es vor, dass eine User-Sitzung die in den Datenbanksessions nicht angezeigt wird, trotzdem beim Lesen der Sessiontabelle gefunden wird und damit eine neue Sitzung verhindert.
Blöderweise tritt das nur sporadisch auf. Bei der Prüfung eines Clients mit 2 Sitzungen war lt. Taskmanager nur ein Nav Client geöffnet.

Wir setzen den NAV 2009 Classic Client unter SQL 2008 ein und verwenden die Windows Anmeldung.

Habt Ihr eine Idee woran das liegt.

Gruß
42

Re: Problem mit doppelten Sessions

9. April 2010 08:19

Wie prüfst du die Anzahl der Anmeldungen? Mit einem Filter auf die Session-Tabelle?

SendKeys ist keine so schöne Lösung. Wir machen etwas ähnliches auch mit der User-Tabelle: Wir prüfen die Anzahl der Sessions, hat der User zu viele Anmeldungen wird ein VB-Script ausgeführt, welches die letzte finsql.exe killt und eine Messagebox ausgibt, damit der Benutzer weiß was da vor sich geht.

Wir haben nur das Problem mit abgestürzten Sessions: bedeutet wenn Navision abstürzt, bleibt die Session noch ein paar Minuten aktiv, bis sie wegen Timeout rausgeschmissen wird.

Gruß,
Sebastian

Re: Problem mit doppelten Sessions

9. April 2010 15:29

Wir ermitteln die Anzahl der Anmeldungen über einen Filter auf die Session-Tabelle. (Datenbankname + Applikation + UserId).
Und über den SendKey - der natürlich nicht die eleganteste Lösung ist - beenden wir den Client über Alt-F4, aber ein zusätzliches Tool bzw. Script ist nicht gewünscht.

Mein erster Ansatz war, die Sitzung direkt aus NAV heraus aus der Session-Tabelle zu löschen. Wenn ich über Datenbank => Info => Aktive Sessions gehe funktioniert das ja - aber per Programm bekomme ich immer die Meldung "Keine Berechtigung zum Löschen der Tabelle Session".

Wie lange ist denn der Timeout bzw. kann man das einstellen? Ich hatte gestern das Problem mit einer Session die seit ca. 1 Stunde im Leerlauf war.

Unabhängig von der Eleganz - die eigentliche Erziehungsmaßnahme hat wunderbar funktioniert. 8-)

Gruß
42

Re: Problem mit doppelten Sessions

9. April 2010 16:13

1 Stunde!? Also bei uns beträgt das vielleicht so 10 Minuten. Für mich hört sich der Timeout wie eine SQL-Server-Option an. Wann genau bleibt bei euch eine Session "hängen"? Nur bei Absturz des Clients?

Wir haben uns damals auch überlegt mit Alt+F4 den Client zu beenden, war aber absolut fehlerträchtig. Beispiel: Anwender startet Navision und danach sofort eine andere Anwendung. Und Zack war die andere Anwendung weg.

Re: Problem mit doppelten Sessions

25. August 2010 16:15

Hallo zusammen,

ich muss das Thema doch nochmal hervorkramen. Wir haben das Problem jetzt soweit analysiert, dass wir festgestellt haben das dieses Phänomen immer dann auftritt wenn nach einem Release alle Objekte kompiliert werden und diese Sitzung nicht vorher geschlossen war. Anschließend tritt das Problem beim Beenden und erneuten Öffnen nicht mehr auf. Es scheint also irgendwie an diesem Compile zu liegen.
Wird die Sitzung vor dem Import von Objekten geschlossen, tritt das Problem nicht auf.

Habt Ihr irgendwelche Ideen? - außer die Sitzung vorher zu schließen :wink:

42

Re: Problem mit doppelten Sessions

26. August 2010 09:04

Das Löschen der Datensätze aus der Tabelle Session ist, meiner Meinung nach, die einfachste und beste Variante, um Nutzer automatisiert von NAV aus abzumelden. Wenn der User keine Berechtigung auf diese Tabelle hat, kann man sie ihm geben oder der CU, welche den Code zum Abmelden ausführt.

Re: Problem mit doppelten Sessions

26. August 2010 18:29

Hallo Michael,

genau das möchte ich ja vermeiden. Das Problem ist, dass bei diesem einen Client die Session nicht beendet wird - obwohl der NAV Client nicht mehr läuft. (es ist auch kein Prozess mehr da) Es tritt reproduzierbar nach dem Compile der Objekte auf.
Ich kann und möchte den Anwendern nicht zumuten, dass sie sich nach einem Update nicht mehr anmelden können.
Die neu gestartete und dann per SendKey beendete Sitzung ist auch nicht das Problem - sondern die alte Sitzung. Und die sollte ganz regulär beim manuellen Beenden des Clients auch aus der Session Tabelle gelöscht werden.

Re: Problem mit doppelten Sessions

30. August 2010 09:17

Was hälst du denn davon, die Sessiontabelle einfach ganz weg zu lassen. Stattdessen kannst du gleich auf die Anzahl der laufenden Prozesse prüfen und diese dann töten.

Re: Problem mit doppelten Sessions

31. August 2010 14:27

Hallo Michael,

um die Session Tabelle geht es gar nicht mehr. Die Geschichte mit dem automatisierten Beenden von Sitzungen klappt wunderbar.

Das aktuelle Problem ist, dass ein Benutzer Navision ganz normal beendet - in NAV die Sitzung aber nicht freigegeben wird. Es passiert auch nur bei einem einzigen Benutzer auf einer Win XP Maschine.

Ich bin etwas ratlos wo man da ansetzen kann - es treten keine Fehler auf und auf der Clientmaschine sieht auch alles normal auf (keine prozesse mehr usw.).

Gruß
42

Re: Problem mit doppelten Sessions

31. August 2010 14:47

Vielleicht solltest du mal eventuell vorhandene Updates auf der XP Maschine einspielen.