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

EsDiese lassenEinstellung sichlegt mehrerefest, Einstellungenob vornehmen:

  • RequestLogging : wird überhaupt protokolliert?und falls ja, was?
  • RequestLogFile : Pfad zum Logfile mit den Protokollen
  • RequestFilterConn : sollen Requests aller oder nur einer Verbindungwas protokolliert werden?
  • wird. 

RequestLogging

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

 

Request Logging einschalten