2.4.17. Aktivieren des Datenbank-Loggings

Aus Performance-Gründen werden die initialen Testdaten durch checkerberry db im Batch-Modus in die Datenbank geschrieben. Beim Einspielen der Testdaten wird für jeden einzufügenden Datensatz ein SQL-INSERT-Statement an die Datenbank gesendet. Durch die Verwendung des Batch-Modus wird nicht jedes SQL-Statement separat an die Datenbank gesendet. Stattdessen werden die SQL-Statements gesammelt und zusammen an die Datenbank übertragen. Dadurch wird die Kommunikation mit der Datenbank minimiert, was insbesondere bei großen Datenmengen zu Performance-Vorteilen führt.

Die Anzahl der SQL-Statements, die zusammen an die Datenbank gesendet wird, bezeichnet man als BatchSize. Die BatchSize ist initial auf den Wert 100 gesetzt und kann über das DbUnit-Property http://www.dbunit.org/properties/batchSize konfiguriert werden [DbUnit-Properties, 2010].

Die Verwendung des Batch-Modus ist dann ein Nachteil, wenn bei dem Einspielen der initialen Testdaten ein Fehler auftritt. Beim Einspielen der Daten durch DbUnit im Batch-Modus kann nicht angegeben werden, welches Statement den Fehler verursacht hat. Aus diesem Grund bietet checkerberry db die Möglichkeit, SQL-Statements zu loggen. Auf diese Art und Weise kann der Entwickler genau nachvollziehen, wann welche Anfragen an die Datenbank gesendet wurden. Dies vereinfacht die Suche nach der Fehlerursache.

2.4.17.1. Konfigurieren des Datenbank-Loggings

Die Konfiguration des Datenbank-Loggings ist optional. In der Regel wird das Logging nur zu Analysezwecken aktiviert, sodass während der Installation keine weiteren Schritte erforderlich sind.

Beispiel 2.52. Aktivierung des Datenbank-Loggings

public class ConfigurationCallback implements DbConfigurationCallback {
  public void configure(DbConfiguration configuration) {
    // Datenbank-Logging aktivieren
    configuration.setStatementLoggingEnabled(true);
}


Das obige Code-Beispiel demonstriert, wie das Datenbank-Logging über die Methode setStatementLoggingEnabled aktiviert wird.

Intern verwendet checkerberry db das Datenbank-Interceptor-Werkzeug P6Spy, um die Zugriffe zur Datenbank zu loggen. Standardmäßig wird eine eingebaute Konfiguration verwendet, die die Log-Ausgabe in die Konsole schreibt. Zur Änderung der P6Spy-Konfigurationseinstellungen, kann eine eigene Datei spy.properties in den Klassenpfad einfügt werden. Die Konfiguration der Property-Datei ist in [P6Spy Dokumentation, 2010] beschrieben.