58 Stimmen

H2-Datenbankfehler: Datenbank ist möglicherweise bereits in Verwendung: "Durch einen anderen Prozess gesperrt"

Ich versuche, die H2-Datenbank von einer Java-Anwendung aus zu verwenden.

Ich habe die Datenbank und ihre Tabellen über die H2-Konsole erstellt und versuche dann, mich von Java aus zu verbinden, indem ich

Connection con = DriverManager.getConnection("jdbc:h2:~/dbname", "Benutzername", "Passwort");

verwende. Allerdings erhalte ich den folgenden Fehler:

Ausnahme im Thread "main" org.h2.jdbc.JdbcSQLException: Datenbank ist möglicherweise bereits in Benutzung: "Durch einen anderen Prozess gesperrt". Mögliche Lösungen: alle anderen Verbindungen schließen; den Servermodus verwenden [90020-161]

Ich habe versucht, die dbname.lock.db-Datei zu löschen, aber sie wird automatisch neu erstellt.

Wie kann ich die Datenbank entsperren, um sie in meinem Java-Programm zu verwenden?

1voto

Ich hatte dieses Problem in Eclipse . Was ich gemacht habe, war, den laufenden Java-Prozess aus dem Task-Manager zu beenden.

Bildbeschreibung hier eingeben

Es hat bei mir funktioniert.

1voto

In Ihrer application.properties-Datei > bearbeiten Sie die Datenquelle wie folgt:

spring.datasource.url=jdbc:h2:file:C:/temp/test;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE

Viel Spaß beim Codieren!

1voto

Identifizieren Sie die H2-Prozess-ID und beenden Sie sie. Für Mac

ps -ef|grep h2

Dann erhalten Sie die Prozess-ID und beenden Sie sie.

kill -9 PID

0voto

java code point Punkte 29

Antwort auf diese Frage => Ausnahme im Thread "main" org.h2.jdbc.JdbcSQLException: Datenbank kann bereits verwendet werden: "Durch einen anderen Prozess gesperrt". Mögliche Lösungen: Schließen Sie alle anderen Verbindungen; Verwenden Sie den Servermodus [90020-161]

Schließen Sie alle Registerkarten Ihres Browsers, in denen die h2-Datenbank geöffnet ist, und beenden Sie auch den h2-Motor auf Ihrem Computer.

0voto

Soundous Bahri Punkte 86

Für InteliJ: Klicken Sie mit der rechten Maustaste auf Ihre Datenbank in der Datenbankansicht und wählen Sie "Trennen".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X