Request Logging
Manchmal kann es hilfreich sein, feststellen zu können, welche Operationen von einem Client-Programm an die Datenbank gesendet werden. Dazu bietet SQL Anywhere eine Funktion namens Request Logging an.
Die Einstellungen dazu lassen sich über iSQL vornehmen. Die Datenbank schreibt dann ein Protokoll in eine Logfile. Dieses kann relativ schnell groß und unüberschaubar werden. Deshalb bietet es sich an, das Request Logging (vor allem auf produktiv genutzten Datenbanken) immer nur kurzzeitig und kontrolliert zu aktivieren.
mögliche Einstellungen
RequestLogging
Diese Einstellung legt fest, ob und falls ja, was protokolliert wird. Standardwert ist NONE
, d.h. es findet keine Protokollierung statt
Mögliche Werte: SQL
, PLAN
, HOSTVARS
, PROCEDURES
, TRIGGERS
, OTHER
, BLOCKS
, REPLACE
, ALL
, NONE
Bis auf NONE
lassen sich alle Werte kombinieren. Eine übliche Kombination ist SQL+PROCEDURES+BLOCKS
.
RequestLogFile
Pfad zum Logfile. Wichtig: der Pfad muss aus Sicht des Datenbank-Servers angegeben werden!
RequestFilterConn
Standardwert ist -1, d.h. Requests aller Verbindungen werden protokolliert. Möchte man nur für eine - meist die eigene - Verbindung protokollieren, muss man hier die Verbindungs-ID übergeben. Diese lässt sich mit der Systemprozedur sa_conn_info
ermitteln.
aktueller Stand prüfen
SELECT PROPERTY('RequestLogging');
SELECT PROPERTY('RequestLogFile');
einschalten
CALL sa_server_option('RequestLogging', 'SQL+PROCEDURES+BLOCKS');
CALL sa_server_option('RequestLogFile', 'D:\Datenbank-Protokolle\requests.log');
ausschalten
CALL sa_server_option('RequestLogging', 'NONE');