[Gelöst] Table Session Events

6. Mai 2019 12:30

Hi,

in den letzten paar Tagen kam es öfter zu Tabellensperrungen (für ca. 30 Minuten) , habe da jetzt mal geschaut und gesehen dass ein SQL TimeOut passiert.
Betroffen ist die Tabelle [Session Events].

Code:
declare @result int;
                  EXEC @result = sp_getapplock @Resource = 'SessionEventTableMaintenance', @LockMode ='Exclusive', @LockTimeout=0;
                  IF @result = 0 DELETE FROM [DB_Live].[dbo].[Session Event]
                    WHERE NOT EXISTS
                    (SELECT 1 FROM
                       [DB_Live].[dbo].[Active Session] AS acs WITH(NOLOCK)
                        WHERE
                             acs.[User SID] = [DBLive].[dbo].[Session Event].[User SID]               
                            AND acs.[Server Instance ID] = [DB_Live].[dbo].[Session Event].[Server Instance ID]
                            AND acs.[Session ID] = [DB_Live].[dbo].[Session Event].[Session ID]
                            AND acs.[Session Unique ID] = [DB_Live].[dbo].[Session Event].[Session Unique ID]
                            AND acs.[Login Datetime] = [DB_Live].[dbo].[Session Event].[Event Datetime])
                    AND DATEDIFF(Month, [Event Datetime], GETUTCDATE()) >= @0
                    ;


Hab dann hier eine Info gefunden.

Demnach ist es eine reine Log Tabelle welche sporadisch von NAV geleert wird. Anders als bei dem Link finde ich bei uns die Optionen: Session Event Table Purge und Session Event Table Retain Period nicht.

Die Option um das Problem zu lösen scheint die Anlage eines SQL Job. Und damit kann man auch nichts kaputt machen(löschen)? :D

Wo in NAV werden die Daten aus dieser Tabelle eigentlich herrangezogen zur Auswertung? Oder sind das reine SQL Daten?

Danke
Zuletzt geändert von elTorito am 6. Mai 2019 16:03, insgesamt 1-mal geändert.

Re: Table Session Events

6. Mai 2019 12:36

Heya,

das Problem hatten wir auch mal. Das tritt vor allem dann auf, wenn ihr viele Webservice Calls habt. Denn jeder Login wird darin festgehalten. (wir hatten mehrere Millionen Einträge in der Tabelle) Und jedes Mal wenn du dich verbindest wird die Tabelle gescannt.
Die Tabelle hält Standardmäßig die Daten der letzten 3 Monate fest. Du kannst im Service aber die Einstellung ändern. "Session Event Table Retain Period" nennt sich die Option.

Re: Table Session Events

6. Mai 2019 12:53

HI,
ja, ca. 11 Mio Datensätze tummeln sich da gerade... WebServices wurden vor kurzen in Betrieb genommen.

Allerdings sehe ich in der NAV Administration die Option "Session Event Table Retain Period" nicht.

Also einfach Storage Procedure schreiben, und regelmäßig ausführen lassen? Problem gelöst?

Danke

Re: Table Session Events

6. Mai 2019 13:00

Hab bei uns keine Prozedure laufen, hab das bei uns einfach auf ein Monat runter gestellt und das hilft.
Aber wo das Problem das erste mal aufgetaucht ist hab ich per SQL einfach alle Einträge gelöscht die vom Webservice verursacht wurden.

und hier mal noch n Link der das Problem behandelt:
https://community.dynamics.com/nav/b/stefanodemiliani/archive/2018/03/26/nav-session-event-table-cleanup

Re: Table Session Events

6. Mai 2019 16:03

Ich bin jetzt wie hier (https://forum.mibuso.com/discussion/678 ... nt-records) vorgegangen und habe mir eine Storage Procedure erstellt welche die NAV Aufgabenwarteschlange periodisch ausführt.
Ich hoffe das Problem ist damit gelöst. :-)

Danke

Re: Table Session Events

7. Mai 2019 12:32

elTorito hat geschrieben:Allerdings sehe ich in der NAV Administration die Option "Session Event Table Retain Period" nicht.


AdminTool.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [Gelöst] Table Session Events

7. Mai 2019 12:52

Grad nochmal nachgeschaut... Ich hätte schwören können es war nicht da... :roll:
Aber Nun gut. Gestern war Montag, und ich bin etwas Krank :oops: :lol:

Re: [Gelöst] Table Session Events

8. Mai 2019 09:07

elTorito hat geschrieben:Grad nochmal nachgeschaut... Ich hätte schwören können es war nicht da... :roll:

ja das kenne ich :lol:
PS: gute Besserung!