2013-04-23 10 views
5

hsqldb(バージョン2.2.9を使用)に接続しようとしています。hsqldb:ファイルに接続するときのデータベースロック取得

私は、次を使用して1を作成しました:

java -cp hsqldb-2.2.9.jar org/hsqldb/util/DatabaseManagerSwing 

私のUIを通してDBに接続しようとすると、私は次の例外取得しています:私はデシベルがあるためロックされていると推定

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) 

を私の前にDatabaseManagerSwingが接続を確立したので、私はそれを閉じました。私は春のMVCとC3P0を使用してい

Exception occured : java.sql.SQLException: Database lock acquisition failure: lockFile: [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) 

: これは、次の例外を発生させました。 接続の詳細(提供デシベルへの絶対パス):

Connection con = DriverManager.getConnection("jdbc:hsqldb:file:/home/mgnyp/workspace/src/Project/webapp/WEB-INF/lib/testDataBase", "SA", ""); 

私は失敗した残念ながら、このアプローチを試してみた: Database lock acquisition failure and hsqldb

私もhsql.org

謝罪でドキュメントを見上げ問題が明らかな場合は、以前はhsqlを使用していません。

私は何か助けやヒントがありがとうと思います。

ありがとうございます。

+1

Webアプリケーションで既に使用されているデータベースを開こうとしていますか? – shyam

+1

こんにちはshyam、返事ありがとうございます。私はちょうど私が気づいていなかったそのデータベースへのぶら下がっている接続、つまりロックを発見します。現在は動作していますが、接続を確立するコードには設計フローがあります。それは私がそれを質問として掲示した理由です。) – monika

+0

@mgnyp私は同じ問題があります。それを修正する方法を教えてください。 – nawara

答えて

11

追加の接続文字列に; readonly = trueをプロパティとして含めることで、ロックファイルを無効にすることができました。それ以外の場合は、ロックが常にファイルデータベースに対して保持されていることがわかりました。私のために働くサンプル接続文字列はjdbc:hsqldb:file:my/file/location; readonly = true

0

私は同じ問題がありました。 .lck(ロック)ファイルを削除して再接続しました。今それは正常に動作します。

関連する問題