hsqldb - Database must be shutdown

Status
Nicht offen für weitere Antworten.

Heady86

Bekanntes Mitglied
HI,

hab versucht auf eine .odb Datenbank zuzugreifen. Da es beim ersten Mal nicht funktioniert hab, habe ich mal eine neue hsqldb.lib eingebunden. Wenn ich jetzt aber versuche das Programm nochmal zu starten (hab es sogar mit einem neuen Programm versucht) kommt folgende Fehlermeldung:

Code:
java.sql.SQLException: old version database must be shutdown
	at org.hsqldb.jdbc.Util.sqlException(Util.java:363)
	at org.hsqldb.jdbc.Util.sqlException(Util.java:103)
	at org.hsqldb.jdbc.JDBCConnection.<init>(JDBCConnection.java:3233)
	at org.hsqldb.jdbc.JDBCDriver.getConnection(JDBCDriver.java:285)
	at org.hsqldb.jdbc.JDBCDriver.connect(JDBCDriver.java:245)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:185)
	at DBTest.connect(DBTest.java:19)
	at DBTest.main(DBTest.java:56)
Caused by: org.hsqldb.HsqlException: old version database must be shutdown
	at org.hsqldb.error.Error.error(Error.java:112)
	at org.hsqldb.error.Error.error(Error.java:82)
	at org.hsqldb.persist.HsqlDatabaseProperties.load(HsqlDatabaseProperties.java:446)
	at org.hsqldb.persist.Logger.openPersistence(Logger.java:191)
	at org.hsqldb.Database.reopen(Database.java:265)
	at org.hsqldb.Database.open(Database.java:237)
	at org.hsqldb.DatabaseManager.getDatabase(DatabaseManager.java:225)
	at org.hsqldb.DatabaseManager.newSession(DatabaseManager.java:148)
	at org.hsqldb.jdbc.JDBCConnection.<init>(JDBCConnection.java:3216)
	... 6 more

Krieg ich die manuell geschlossen oder so? Hab auch mal eclipse neugestartet und logs gelöscht, gleiches Problem

/edit: google findet zu "old version database must be shutdown" nur ein Suchergebnis und das ist die Datei wo halt die Error meldungen hinterlegt sind :bahnhof:


Danke, Grüße
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Die Exception wird von HSQL selbst geworfen. Hast du zwei verschiedene DB-Versionen im Speicher aktiv?
 

Heady86

Bekanntes Mitglied
Die Exception wird von HSQL selbst geworfen. Hast du zwei verschiedene DB-Versionen im Speicher aktiv?

Nicht dass ich wüsste. Zwischendurch wurde der Rechner ja auch immer mal wieder neugestartet und war über Nacht auch aus, also ist es leider doch kein Problem das sich von selber behebt bzw. nur was mit dem Speicher zu tun hatte. Hab nämlich auch schon gedacht dass die halt im Hintergrund irgendwie noch offen ist, aber dann müsste sie ja spätestens nach dem Ausschalten vom PC funktionieren :noe:
 

DerEisteeTrinker

Bekanntes Mitglied
dann denkt die datenbank immernoch, dass sie offen ist. du solltest wenn du die connection nicht mehr brauchst auch die verbindung richtig kappen.
 

Heady86

Bekanntes Mitglied
Ist das hier nicht der Fall? ???:L

Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class DBTest {

    private Connection connection;

    public void connect() throws SQLException {
        try {
            Class.forName("org.hsqldb.jdbcDriver");
        } catch (final ClassNotFoundException exception) {
            System.out.println("HSQLSB driver not found");
            System.exit(-1);
        }
        connection = DriverManager.getConnection("jdbc:hsqldb:file:E:/test/database/", "sa", "");
        
    }

  
    public void disconnect() {
    	try {
			connection.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    public void executeQuery(final String query) throws SQLException {
        final Statement stmt = connection.createStatement();
                              
        stmt.close();
    }

  
    public static void main(final String[] args) {
        final DBTest test = new DBTest();
        try {

            test.connect();
            test.executeQuery("SELECT * FROM Person");
            test.disconnect();
            
        } catch (final SQLException exception) {
            exception.printStackTrace();
        }
    }
}
 

DerEisteeTrinker

Bekanntes Mitglied
dein Quelltext hat die Schwachstelle, dass die Verbindung offen bleibt, wenn es bei dem Statement einen Fehler gibt. Ich würde das wie folgt machen

Die disconnect-Methode:
Java:
try {
	if (connection != null) {
		connection.close();
	}
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Dein Progrämmchen:

Java:
try {
	 
    test.connect();
    test.executeQuery("SELECT * FROM Person");
    
} catch (final SQLException exception) {
    exception.printStackTrace();
} finally {
	test.disconnect();
}
 

Heady86

Bekanntes Mitglied
Hi,

danke, hab das jetzt so angepasst, allerdings bleibt der Fehler der selbe.

Kann es auch irgendwie an der lib liegen? Ich hab die hier für den build path verwendet

Danke und Grüße
 
M

maki

Gast
Nimm die 1.8, 1.9 ist erst im Release Candidate Stadium, also noch Beta.
 

DerEisteeTrinker

Bekanntes Mitglied
wenn der fehler auch nach der neuen lib noch da ist, musst du die datenbank neu anlegen. weil du sie dir dann höchstwahrscheinlich zerschossen hast
 

Heady86

Bekanntes Mitglied
Morgen,

also hab jetzt die die ältere 1.8 lib wieder reingemacht und die Datenbank neu erstellt.

Der Fehler ist jetzt weg allerdings kommt beim ausführen "terminated", hab dann im debug gesehen dass folgende Meldung kommt:

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820]

Google sagt bei mehreren Treffern dass es sich um einen Java Bug handelt der immer noch nicht geregelt ist, stimmt das? Workarounds wie System.exit(0) oder eine kleine Sleeptime haben nicht gewirkt :rtfm:

Jemand noch eine Idee? Gibts ja wohl nicht dass so ein billiges Programm so rumzickt :pueh:

Danke und Grüße

/edit: Java 6 und Eclipse 3.4.1
 
Zuletzt bearbeitet:

javadan

Neues Mitglied
oben wurde schon alles richtig gemacht. der Befehl
Java:
connection.close
kann nicht alle Arten von DB Verbindungen trennen. Die HSQLDB braucht ein Query mit dem Befehl "Shutdown" damit die Verbindung getrennt wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I HSQLDB HSQLDB 2.5.0 - Wie Loggen abstellen? Datenbankprogrammierung 4
B HSQLDB - auto_increment als unexpected token ? Datenbankprogrammierung 1
E Abfrage auf HSQLDB Datenbankprogrammierung 4
windl MySQL und HSQLDB Datenbankprogrammierung 4
D HSQLDB HSQLDB in PHP-Projekt einbinden? Datenbankprogrammierung 7
I Inhalt einer hsqldb anzeigen Datenbankprogrammierung 1
G java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver Datenbankprogrammierung 4
M HSQLDB oder DERBY - warum SCRIPT Datei? Datenbankprogrammierung 0
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F hsqldb Fehler - unknown source Datenbankprogrammierung 11
E HSQLDB Eclipse + Geronimo + HSQLDB = org.hsqldb.jdbcDriver in classloader Datenbankprogrammierung 5
M HSQLDB 2.0 - wie tmp-Verzeichnis löschen Datenbankprogrammierung 2
S HSQLDB DELETE-Statement funktioniert nicht Datenbankprogrammierung 4
M Bei HSQLDB etwas wie OPTIMIZE TABLE? Datenbankprogrammierung 2
F HSQLDB HSQLDB lässt mich nicht auf erstellte Tabelle zugreifen Datenbankprogrammierung 12
D datenbank (hsqldb) in runnable jar einbinden Datenbankprogrammierung 2
E Herangehensweise Neues Projekt mit Netbeans / HSQLDB / JPA Datenbankprogrammierung 3
T Hsqldb: java.lang.NoClassDefFoundError: org/hsqldb/Server Datenbankprogrammierung 2
F Kann keine Verbindung mit HSQLDB aufbauen Datenbankprogrammierung 2
S HSQLDB Kopiere Tabellen Datenbankprogrammierung 2
O HSQLDB Verbindung schlägt fehl Datenbankprogrammierung 3
K Jpa hsqldb Datenbankprogrammierung 1
N Problem mit HSQLDB Datenbankprogrammierung 5
N Hsqldb und text tables source not found Datenbankprogrammierung 5
B HSQLDB Datenbank Manager Datenbankprogrammierung 19
R SELECT aus hsqldb mit Parameter Datenbankprogrammierung 2
R HSQLDB Datenbankprogrammierung 10
G hsqldb datenspeicherung Datenbankprogrammierung 2
D H2 DB oder doch HSQLDB ? Datenbankprogrammierung 2
A HSQLDB Performance bei erstem Zugriff Datenbankprogrammierung 6
G HSQLDB überprüfen, ob Tabelle bereits existiert Datenbankprogrammierung 3
@ HSQLDB: socket creation error Datenbankprogrammierung 6
G HSQLDB Files Datenbankprogrammierung 5
G maximale Einträge in HSQLDB Datenbankprogrammierung 7
A Datenspeicherung in hsqldb Datenbankprogrammierung 22
A Umgang mit hsqldb Datenbankprogrammierung 24
A Fehler in der HSQLDB Datenbankprogrammierung 6
A Problem mit der Anbindung zur hsqldb Datenbankprogrammierung 18
J HSQLDB ohne JDBC Datenbankprogrammierung 8
C Keine Verbindung zu HSQLDB möglich Datenbankprogrammierung 22
G Probleme mit Laden des JDBC-Treiber in HSQLDB Datenbankprogrammierung 2
G HSQLDB - kann mir jemand Packages erstellen? Datenbankprogrammierung 6
B HSQLDB und die log-Datei Datenbankprogrammierung 10
W HSQLDB Datenbankprogrammierung 6
G HSQLDB als Dateien anlegen Datenbankprogrammierung 5
S nullpointerexception bei HSQLDB Datenbankprogrammierung 4
L HSQLDB sichern (import und export von DB) Datenbankprogrammierung 3
D HSQLDB in JAR Datenbankprogrammierung 3
S hsqldb und ant Datenbankprogrammierung 3
S Hsqldb java.lang.NullPointerException Datenbankprogrammierung 2
D HSQLDB 2xPK + AutoInc Datenbankprogrammierung 22
M HSQLDB Server Problem Datenbankprogrammierung 2
T HSQLDB => diverses Datenbankprogrammierung 21
L persistentes Speichern von Daten in der HSQLDB ? Datenbankprogrammierung 5
A Weitere Fragen zu hsqldb Datenbankprogrammierung 6
A Text-Tabellen in HSQLDB Datenbankprogrammierung 9
A HSQLDB Datenbankprogrammierung 10
A Hsqldb ClassDefNotFound Datenbankprogrammierung 2
M Problem mit HSQLDB Datenbankprogrammierung 2
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
G Problem mit der Startenzeit einer HSQLDB Datenbankprogrammierung 4
T HSQLDB, wie mache ich das mit hsqldb.cache_scale? Datenbankprogrammierung 13
E BufferedImage in hsqldb speichern Datenbankprogrammierung 5
B HSqlDb Datenbankprogrammierung 2
X HSQLDB und Variablen Datenbankprogrammierung 7
R hsqldb: performance, große tabellen und so Datenbankprogrammierung 10
P DERBY vs HSQLDB (Vor- Nachteile) Datenbankprogrammierung 3
EagleEye INSERT INTO Problem mit HSQLDB Datenbankprogrammierung 8
G Vector in hsqldb schreiben Datenbankprogrammierung 5
M Cast-Problem - HSQLDB Datenbankprogrammierung 3
C HSQLDB korrekter Shutdown Datenbankprogrammierung 2
C hsqldb Befehle in Java Datenbankprogrammierung 19
P HSQLDB Mehrbenutzerbetrieb Datenbankprogrammierung 7
D HSQLDB Datenbank Zugriff! Datenbankprogrammierung 4
H javaw bleibt bei hsqldb hängen Datenbankprogrammierung 12
D HSQLDB installieren ... Datenbankprogrammierung 8
D Wie füge ich mit dem Database Connector etwas hinzu. Datenbankprogrammierung 1
berserkerdq2 database is closed, obwohl ich alle statements in try catch blöcken habe? Datenbankprogrammierung 5
T The database file is locked Datenbankprogrammierung 2
Kirby.exe Sample Database in Postgres laden Datenbankprogrammierung 5
C Java MySQL check if value exists in database Datenbankprogrammierung 2
C Problem with insertion in database. Datenbankprogrammierung 7
B MySQL Data Tools Plattform - "Database Connections" findet den Treiber nicht Datenbankprogrammierung 1
L MySQL Database Helper Klasse mit Consumer Datenbankprogrammierung 7
J Java 8 und Microsoft Access Database-Dateien(mdb) Datenbankprogrammierung 1
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
S Oracle Database 11g , eclipse , Tabelle erstellen Datenbankprogrammierung 2
P Embedded Database und große Datenmengen Datenbankprogrammierung 23
G Database indexing Datenbankprogrammierung 7
B H2 Database Beispiel Source Code Datenbankprogrammierung 8
A Fehlermeldung H2 Database Datenbankprogrammierung 3
A Datensatzsperrung unter H2 Database Datenbankprogrammierung 43
A Fehler beim Starten des Servers für H2 Database Datenbankprogrammierung 13
G Import einer csv-Datei in eine H2-Database Datenbankprogrammierung 12
J Database replication Datenbankprogrammierung 4
E Problem beim laden des JDBC Driver bzw der Database Datenbankprogrammierung 8
J Hibernate create database Datenbankprogrammierung 4
Y Entity must be managed to call remove Datenbankprogrammierung 1
S JPA Hibernate: "The user must supply a jdbc connection" Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben