Trouble Shooting

Typische Probleme und ihre Lösung

GUI

No suitable driver found

Diese Fehlermeldung deutet auf einen Tippfehler in der JDBC Url hin.

No suitable driver found

Es ist zu prüfen, ob die URL korrekt ist. Im Beispiel ist ein "h3" statt "h2" zu erkennen. Die URL sollte mit "jdbc:h2:tcp/" beginnen, gefolgt von Hostnamen, Schema usw.

Ist der Fehler nicht offensichtlich zu erkennen, sollte nach Leerzeichen oder Sonderzeichen in der URL gesucht werden.

UnknownHostException

Diese Fehlermeldung deutet auf einen falschen Hostnamen in der JDBC Url hin.

UnknownHostException

Bei dieser Fehlermeldung ist der Computer, auf dem die GUI läuft, nicht in der Lage, den Hostnamen aufzulösen. Im Beispiel wird der Server "myserver" nicht aufgelöst.

Neben Tippfehlern im Hostanmen kann es sich auch um ein Problem mit der DNS Auflösung handeln. Mit Hilfe von "ping" kann die Namensauflösung überprüft werden, zum Beispiel

ping myserver.softquadrat.de

Wenn das funktioniert, sollte auch die datasqill GUI die Auflösung hinbekommen. Wurden dazu Änderungen am DNS oder der /etc/hosts Datei vorgenommen, ist ein Neustart der GUI nötig, bevor man es erneut versucht.

TransformationsWithoutFolders

Sollte es durch ein Neuaufsetzen einer Umgebung oder Löschen von Verzeichnissen dazu kommen, dass es verwaiste Arbeitsblätter (Sheets) in der Datenbank gibt, so muss in der H2-Repository Datenbank folgende SQL Sequenz ausgeführt werden:

DELETE FROM vv_sqts_action
 WHERE sqts_diagram_group_id IN (
         SELECT sqts_diagram_folder_id
           FROM vv_sqts_diagram_group vsdg
          MINUS
          SELECT sqts_diagram_folder_id
            FROM vv_sqts_diagram_folder vsdf
       );

DELETE FROM vv_sqts_object
 WHERE sqts_diagram_group_id IN (
         SELECT sqts_diagram_folder_id
           FROM vv_sqts_diagram_group vsdg
          MINUS
          SELECT sqts_diagram_folder_id
            FROM vv_sqts_diagram_folder vsdf
       );

DELETE FROM vv_sqts_layout
 WHERE sqts_diagram_group_id IN (
         SELECT sqts_diagram_folder_id
           FROM vv_sqts_diagram_group vsdg
          MINUS
          SELECT sqts_diagram_folder_id
            FROM vv_sqts_diagram_folder vsdf
       );

DELETE FROM vv_sqts_action_attribute
 WHERE sqts_diagram_group_id IN (
         SELECT sqts_diagram_folder_id
           FROM vv_sqts_diagram_group vsdg
          MINUS
          SELECT sqts_diagram_folder_id
            FROM vv_sqts_diagram_folder vsdf
       );

DELETE FROM vv_sqts_action_source
 WHERE sqts_diagram_group_id IN (
         SELECT sqts_diagram_folder_id
           FROM vv_sqts_diagram_group vsdg
          MINUS
          SELECT sqts_diagram_folder_id
            FROM vv_sqts_diagram_folder vsdf
       );

DELETE FROM vv_sqts_action_target
 WHERE sqts_diagram_group_id IN (
         SELECT sqts_diagram_folder_id
           FROM vv_sqts_diagram_group vsdg
          MINUS
          SELECT sqts_diagram_folder_id
            FROM vv_sqts_diagram_folder vsdf
       );

DELETE FROM vv_sqts_diagram_group
 WHERE sqts_diagram_group_id IN (
         SELECT sqts_diagram_folder_id
           FROM vv_sqts_diagram_group vsdg
          MINUS
          SELECT sqts_diagram_folder_id
            FROM vv_sqts_diagram_folder vsdf
       );

COMMIT;

H2

Locked-Session in H2
  • Um eine Locked-Session zu identifizieren, muss man in einem SQL-Editor mit der H2-Datenbank verbinden und dieses SQL-Statement ausführen:
    SELECT * FROM INFORMATION_SCHEMA.sessions;
  • In Ergebnisse sieht man eine Session, bei der CONTAINS_UNCOMMITTED gesetzt ist: LockedSession

  • Um solche Session zu beenden, muss man dieses Statement benutzen, dabei ID ist aus vorherige Schritt zu benutzen (aud dem Screenshot ID = 525):
    CALL abort_session(ID);
Export H2 in SQL

Datenfile als SQL exportien:

java -cp ~/h2server/lib/h2-1.4.199_Softquadrat-P6.jar org.h2.tools.Script -url jdbc:h2:tcp://localhost:9092/datasqill -password <sa-password> -user sa -script datasqill.sql

Wieder importieren in eine leere Datenbank:

java -cp ~/h2server/lib/h2-1.4.199_Softquadrat-P6.jar org.h2.tools.RunScript -url jdbc:h2:tcp://localhost:9092/datasqill -password <sa-password> -user sa -script datasqill.sql