[gelöst] Trennen von inaktiven Datenbanksessions

Bild Microsoft Dynamics NAV 5.xx

[gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon Gollum83 » 18. September 2008 14:49

Hallo zusammen,

gibt es irgendeine Möglichkeit, User aus der Datenbank zu werfen,
wenn z.B. eine Stunde lang keine Benutzereingabe mehr registriert wird?
Am Besten wäre eine Lösung seitens NAV, da eine Trennung über den SQL Server
in Bezug auf Transaktionen ja gefährlich werden könnte
Zuletzt geändert von Gollum83 am 18. September 2008 15:50, insgesamt 1-mal geändert.
Gollum83
Microsoft Partner
Microsoft Partner
 
Beiträge: 284
Registriert: 31. Mai 2006 16:10
Realer Name: Martin Schlemmer
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Trennen von inaktiven Datenbanksessions

Beitragvon Timo Lässer » 18. September 2008 15:00

Auf mibuso.com gibt es zahlreiche Beiträge zu diesem Thema, jedoch glaube ich, dass sie alle ein externes Tool benötigen.

Prinzipiell müsste es aber auch von NAV selbst möglich sein, die Sessions zu überwachen:
Eine festgelegte Session, welche sowieso durchgehend läuft (z. B. eine Session für Objektaufrufplaner oder ein NAS, ...) lässt gleichzeitig eine Codeunit mitlaufen, welche (mittels Navision-Timer) in regelmäßigen Abständen die Leerlaufzeit der anderen User prüft.
Überschreitet ein User diese Leerlaufzeit, so löscht diese "Überwachungs-Session" einfach den Eintrag aus der Session-Tabelle (am Besten mit Session.DELETE(TRUE);).

Dies habe ich noch nie ausprobiert, es müsste aber so ungefähr funktionieren.

Wichtig: Es darf nur in einer einzigen Session diese "Überwachungs-Codeunit" gestartet sein, da es sonst keine inaktiven Sessions mehr gäbe.
(Logisch, denn dann wären ja alle Sessions ständig aktiv, weil sie permanent inaktive Sessions suchen.)
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Trennen von inaktiven Datenbanksessions

Beitragvon Gollum83 » 18. September 2008 15:49

Hallo Timo

Vielen Dank fĂĽr die Hinweise.
Ich habe auf mibuso folgendes gefunden:
Code: Alles auswählen
OBJECT Codeunit 50025 NAS session monitor
{
  OBJECT-PROPERTIES
  {
    Date=10/21/07;
    Time=[ 8:15:10 PM];
    Modified=Yes;
    Version List=Mibuso,ara3n;
  }
  PROPERTIES
  {
    SingleInstance=Yes;
    OnRun=BEGIN
            IF ISCLEAR(Timer) THEN
              CREATE(Timer);

            Timer.StartTimer(6000);
          END;

  }
  CODE
  {
    VAR
      Timer@1004 : Automation "{DDADD7CC-AD56-4CA6-9C85-22AE76BF21A1} 3.0:{E7414D60-2D83-44C7-826A-FD14557299F0}:'CP Timer'.cTimer" WITHEVENTS;
      Session@1000000000 : Record 2000000009;

    EVENT Timer@1004::TimerEvent@1();
    BEGIN
      Session.SETRANGE("My Session",FALSE);
      Session.SETFILTER("Idle Time",'>15 min');
      IF Session.FINDSET THEN REPEAT
        Session.DELETE;
        COMMIT;
      UNTIL Session.NEXT = 0;
    END;

    BEGIN
    END.
  }
}


Hab zum Test die CU im Client laufen lassen, und Session.SETFILTER("Idle Time",'>2 min'); festgesetzt.
Mein zweiter Testuser wurde nach 2 Minuten nichts tun tatsächlich rausgeschmissen.
Also sollte das ganze ĂĽber den NAS wunderbar funktionieren.

Das mit den externen Tools habe ich nicht geprĂĽft. Ich muss ganz ehrlich sagen,
diese Lösung scheint echt gut zu sein.

Vielen Dank
Gollum83
Microsoft Partner
Microsoft Partner
 
Beiträge: 284
Registriert: 31. Mai 2006 16:10
Realer Name: Martin Schlemmer
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Trennen von inaktiven Datenbanksessions

Beitragvon Timo Lässer » 18. September 2008 16:02

Gollum83 hat geschrieben:Das mit den externen Tools habe ich nicht geprĂĽft. Ich muss ganz ehrlich sagen,
diese Lösung scheint echt gut zu sein.

Ich bevorzuge immer die "interne Lösung" und greife nur auf externe Tools zurück, wenn es definitiv nicht mit NAV-Boardmitteln abbildbar ist.
Bei einfachen DLLs/OCX bediene ich mich der
:greenarrow: [Navision24.de] Automatische Dateiregistrierung
Dieses kleine Tool hilft bei der automatischen Verteilung solcher Dateien.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon Gollum83 » 18. September 2008 16:40

Da bin ich komplett der gleichen Meinung. Man schafft sich sonst nur unnötig Probleme.
Danke fĂĽr den Link mit dem File Registration Tool
Gollum83
Microsoft Partner
Microsoft Partner
 
Beiträge: 284
Registriert: 31. Mai 2006 16:10
Realer Name: Martin Schlemmer
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon Timo Lässer » 18. September 2008 18:12

Gollum83 hat geschrieben:Danke fĂĽr den Link mit dem File Registration Tool
Den Dank reiche ich dann mal an Marc Teuber weiter, denn er hat das Tool geschrieben.
(Wobei ich die Tabellen bei mir mandantenübergreifend definiert habe, da die Dateien nur einmal pro Arbeitsplatz (und nicht noch zusätzlich pro Mandant) registriert werden brauchen.)
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon Gollum83 » 19. September 2008 08:09

ok. einverstanden...
Gollum83
Microsoft Partner
Microsoft Partner
 
Beiträge: 284
Registriert: 31. Mai 2006 16:10
Realer Name: Martin Schlemmer
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon masch » 14. Januar 2009 15:07

Hi,

ich hatte selbige Anforderung, die inaktiven Sessions zu löschen. Habe dafür eine analoge Funktion geschrieben. Diese funktioniert auch sauber über den NAS, aber nur, wenn der NAS auf eine NATIVE-Datenbank geht.
Bei der NASSQL.EXE habe ich das Problem, dass die Session-Tabelle immer nur 1 Datensatz beinhaltet (nämlich die eigene Session).

Ich vermute, dies ist ein Bug in der NASSQL.EXE, da es mit der NAS.EXE funktioniert.
Ich verwende ĂĽbrigens NAV 5.0 SP1 und SQL-Server 2005 bzw. 2008

Hat irgendjemand eine Idee, vielleicht ob es diesebezĂĽglich bereits ein Hotfix seitens MS gibt?
masch
Microsoft Partner
Microsoft Partner
 
Beiträge: 7
Registriert: 30. April 2007 11:51
Realer Name: Matthias SchĂĽller
Arbeitsort: Halle
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x,4.x,5.x

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon SilverX » 14. Januar 2009 15:13

masch hat geschrieben:Bei der NASSQL.EXE habe ich das Problem, dass die Session-Tabelle immer nur 1 Datensatz beinhaltet (nämlich die eigene Session).


Hat der NAS User (also der Service Account) entsprechende Datenbank bzw. Systemrechte auf dem SQL Server bzw. der Datenbank? Ein kurzer Versuch mit db_owner oder sysadmin dürfte klären, ob es sich um fehlende Berechtigungen handelt.
Cheers
Carsten


This post is my own opinion and does not necessarily reflect the opinion or view of my employer.
SilverX
Microsoft Partner
Microsoft Partner
 
Beiträge: 1252
Registriert: 16. September 2006 14:07
Realer Name: Carsten Scholling
Arbeitsort: GĂĽtersloh
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013+

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon masch » 14. Januar 2009 15:40

genau das war's. Vielen Dank fĂĽr den Tipp.
Ich hatte bei meinem Datenbank-Login zwar sysadmin-Rechte, nicht aber mit meinem Window-Login.

Es ist schon echt was Wert, dass es so ein super Forum mit echt kompetenten Leuten gibt. Vielen Dank dafĂĽr
masch
Microsoft Partner
Microsoft Partner
 
Beiträge: 7
Registriert: 30. April 2007 11:51
Realer Name: Matthias SchĂĽller
Arbeitsort: Halle
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x,4.x,5.x

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon Gollum83 » 14. Januar 2009 16:42

Hi,
du könnest auch auf dem sql server dem benutzer die Permission "View server permissions” erteilen.
damit gehts auch
Gollum83
Microsoft Partner
Microsoft Partner
 
Beiträge: 284
Registriert: 31. Mai 2006 16:10
Realer Name: Martin Schlemmer
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon fragglet » 15. Juli 2009 13:00

Hallo zusammen,

ich stand jetzt auch vor der Aufgabe die inaktiven Sessions zu entfernen. Dabei ist mir aufgefallen, das Nutzer die mit Windowsauthentifizierung
angemeldet sind zwar aus der Tabelle Sessions entfernt werden. Sie erhalten aber keine Meldung das die Verbindung zum Server nicht mehr
existiert und können problemlos mit Navision weiterarbeiten. Scheinbar gibt es eine Reconnect sobald der Benutzer wieder im Navision arbeitet, sodaß die Session immer wieder neu in die
Sessiontabelle eingetragen wird. Jetzt weiĂź ich allerdings nicht was passiert wenn die Session aus der Tabelle entfernt wird, der Nutzer noch nicht wieder mit Navision
arbeitet und ein weiterer Nutzer sich anmelden will. Gibt es da irgendwelche Inkonsistenzen? Kann mir dazu jemand eine Auskunft geben?
Es ist eine 5.0 SP1 DB auf einem SQL-Server.

Viele GrĂĽĂźe

Frank
GrĂĽĂźe Fragglet
fragglet
 
Beiträge: 358
Registriert: 27. Juli 2006 13:55

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon yopstar25 » 10. September 2009 10:43

Hallo,

ich bekommen folgende Fehlermeldung wenn ich Sessions über den NAS entfernen möchten(analog zu Codeunit 50025 NAS session monitor )
siehe Screenshot.
ist die Fehlermeldung jemandem bekannt?
Danke
Dateianhänge
Kill-Fehler.jpg
yopstar25
 
Beiträge: 131
Registriert: 19. Februar 2007 23:56
Wohnort: Leipzig
Realer Name: Ă–zel imelij
Arbeitsort: Seehausen
Bezug zu Microsoft Dynamics: SchĂĽler / Student

Re: [gelöst] Trennen von inaktiven Datenbanksessions

Beitragvon t000bi » 22. Januar 2014 19:17

fragglet hat geschrieben:ich stand jetzt auch vor der Aufgabe die inaktiven Sessions zu entfernen. Dabei ist mir aufgefallen, das Nutzer die mit Windowsauthentifizierung
angemeldet sind zwar aus der Tabelle Sessions entfernt werden. Sie erhalten aber keine Meldung das die Verbindung zum Server nicht mehr
existiert und können problemlos mit Navision weiterarbeiten. Scheinbar gibt es eine Reconnect sobald der Benutzer wieder im Navision arbeitet, sodaß die Session immer wieder neu in die
Sessiontabelle eingetragen wird. Jetzt weiĂź ich allerdings nicht was passiert wenn die Session aus der Tabelle entfernt wird, der Nutzer noch nicht wieder mit Navision
arbeitet und ein weiterer Nutzer sich anmelden will. Gibt es da irgendwelche Inkonsistenzen? Kann mir dazu jemand eine Auskunft geben?
Es ist eine 5.0 SP1 DB auf einem SQL-Server.



Konnte diese Problem behoben werden? Bei mir geht es um NAV2009R2 mit SQL-Server.

GruĂź t000bi
t000bi
 
Beiträge: 88
Registriert: 19. März 2009 09:49
Realer Name: Tobias B
Arbeitsort: Reutlingen
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x, 2009, 2013


ZurĂĽck zu NAV 5.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast