Próbuję połączyć się z hsqldb (przy użyciu wersji 2.2.9).hsqldb: Pobieranie blokady bazy danych podczas łączenia z plikiem db
stworzyłem jedną przy użyciu następujących:
java -cp hsqldb-2.2.9.jar org/hsqldb/util/DatabaseManagerSwing
Gdy próbuje połączyć się z db thru mojego ui ja otrzymuję następujący wyjątek:
Exception occured : java.sql.SQLException: Database lock acquisition failure: lockFile: [email protected][file =/rhel5pdi/home/mgnyp/workspace/src/Project/webapp/WEB-INF/lib/testDataBase.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-04-23 10:35:22 heartbeat - read: -8403 ms.
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
I domniemywać db jest zablokowana, ponieważ DatabaseManagerSwing ustanowił połączenie przed moim ui, więc zamknąłem to. Spowodowało następujący wyjątek:
Exception occured : java.sql.SQLException: Database lock acquisition failure: lockFile: org.h[email protected][file =/rhel5pdi/home/mgnyp/workspace/src/PmtMetricsUI2/webapp/WEB-INF/lib/testDataBase.lck, exists=false, locked=false, valid=false, ] method: openRAF reason: java.io.FileNotFoundException: /rhel5pdi/home/mgnyp/workspace/src/Project/webapp/WEB-INF/lib/testDataBase.lck (Permission denied)
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
Używam MVC sprężyny i C3P0. szczegóły połączenia (ścieżka bezwzględna do db przewidziano):
Connection con = DriverManager.getConnection("jdbc:hsqldb:file:/home/mgnyp/workspace/src/Project/webapp/WEB-INF/lib/testDataBase", "SA", "");
Próbowałem tego podejścia, niestety nieudana: Database lock acquisition failure and hsqldb
ja również spojrzał docs na hsql.org
Apologies jeśli problem jest oczywisty, nigdy wcześniej nie używałam hsql.
Byłbym wdzięczny za każdą pomoc lub wskazówki.
Dziękuję.
Czy próbujesz otworzyć bazę danych, która jest już używana przez webapp? – shyam
Cześć, nieśmiały, dziękuję za odpowiedź. Właśnie odkrywam wiszące połączenie z tą bazą danych, której nie zdawałem sobie sprawy, a więc zamek. Teraz działa, kod, który był odpowiedzialny za nawiązanie połączenia, miał przepływ projektu. Zajęło mi to kilka godzin, aby zrozumieć, że (dlatego napisałem to jako pytanie) – monika
@mgnyp Mam ten sam problem. Czy mógłbyś wyjaśnić, jak to naprawić? – nawara