Session Logging Analyzer
Jede Application speichert automatisch Informationen in der Tabelle tblRep_SessionLogging im Runtime-Repository. Es werden pro Session aggregierte Daten über die Anzahl und Dauer der ausgeführten Broker-Anfragen und die Datenbank-Befehle gespeichert. Mit dem Session Logging Analyzer können diese Daten ausgewertet werden.
Im Session-Logging werden die Daten aggregiert. So lassen sich sehr gut statistische Aussagen auch über viele Sessions und lange Zeiträume treffen. Die Aussagen können maximal auf Session-Ebene heruntergebrochen werden.
Einzelne Requests und auch exakte Zeitpunkte (z.B. von auftretenden Blockaden) sind nicht zu greifen. Dafür muss das deutlich detailliertere Session Trace verwendet werden.
Einlesen der Daten
Mit dem Button Login kann man sich an einem Runtime-Repository anmelden. Wird der Session Logging Analyzer über den Run Wizard, Publish Wizard oder Publish2Go-Wizard gestartet, dann wird die Verbindung zum im Setting definierten Runtime-Repository automatisch hergestellt.
Anschließend kann man mit dem Button Load from DB die Daten einlesen. Über die Datums-Felder kann vor dem Einlesen der Zeitraum eingeschränkt werden. Standardmäßig sind die letzten 30 Tage voreingestellt.
Mit dem Button Load from Files können exportierte Daten eingelesen werden. Dabei können aus einem Ordner auch mehrere Dateien gleichzeitig ausgewählt werden. Dafür ist kein Login notwendig.
Mit jedem Einlese-Vorgang werden die aktuellen Daten verworfen.
Export der Daten
Mit dem Button Export to File können die Daten aus dem Repository in eine Datei exportiert werden. Es ist sinnvoll, die Daten auf diese weise zu archivieren, bevor sie dauerhaft aus der Tabelle tblRep_SessionLogging gelöscht werden. Auf diese Weise lassen sich die Daten auch ganz einfach transportieren.
Über die Datums-Felder muss vor dem Export der Zeitraum eingeschränkt werden. Standardmäßig sind die letzten 30 Tage voreingestellt.
Der Export erfolgt immer direkt aus der Datenbank in die Datei. Die aktuell eingelesenen Daten landen nicht im Export.
Tip
- Es ist sinnvoll, monatsweise Exports zu erstellen und diese z.B. im Format
yyyy-mm-KundenName.sessionlogging
zu speichern. - Die Export-Dateien lassen sich sehr gut zippen.
Um den Datenschutz zu gewährleisten ist die Checkbox Anonymous Export standardmäßig gesetzt. Sie bewirkt, dass alle Daten, die auf den Benutzer schließen können anonymisiert werden. In der Export-Datei werden nur noch Hash-Codes angezeigt. Das betrifft z.B.
- Name des Benutzers (UserName, ClientUser)
- Name und IP des Client-Rechners (ClientMachine)
Löschen der Daten
Im Laufe der Zeit sammeln sich in der Tabelle tblRep_SessionLogging sehr viele Datensätze an.
Tip
Grundsätzlich können auch ältere Daten interessante Informationen enthalten, wenn z.B. beurteilt werden soll, wie sich die Performance des Systems im Laufe der Zeit entwickelt hat. Vor dem endgültigen Löschen aus der Datenbank sollte daher ein Export vorgenommen werden (siehe oben).
Alte Datensätze müssen direkt per SQL auf der Datenbank gelöscht werden.
Das folgende SQL-Statement löscht Sätze, die älter sind als 6 Monate. Es werden auf einen Schlag nur 1.000 Zeilen gelöscht, weil ansonsten die Transaktion zu groß und die Tabelle zu lange für laufende Sessions blockiert werden könnte. Das Statement muss so oft ausgeführt werden, bis keine Sätze mehr gelöscht wurden.
Die Anzahl der Monate und die Anzahl der zu löschenden Zeilen kann bei Bedarf angepasst werden.
-- SQL-Server:
DELETE TOP (1000) FROM tblRep_SessionLogging WHERE SL_SessionStart < DATEADD(month, DATEDIFF(month, 0, getdate()) - 6, 0);
-- Oracle:
DELETE FROM tblRep_SessionLogging WHERE SL_SessionStart < ADD_MONTHS(TRUNC(SYSDATE,'MM'), -6) AND ROWNUM <= 1000;