Skip to main content

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');