私は、jarファイルのresourcesディレクトリにあるfat-jarにHSQLDBを埋め込みました。スクリプトがDBにアクセスしようとすると、.lck
ファイルの欠如に関するエラーが発生します。しかし、jarファイル内のDBは常に読み取り専用モードでアクセスされるという印象を受けました。HSQLDB Jar投げ込み埋め込み
Caused by: org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: [email protected][file =/mnt/c/ctakes/SparkCtakes/jar:file:/mnt/c/ctakes/SparkCtakes/lib/ctakes-assembly-4.0.1.jar!/resources/org/apache/ctakes/dictionary/lookup/fast/sno_rx_16ab/sno_rx_16ab.lck, exists=false, locked=false, valid=false, ] method: openRAF reason: java.io.FileNotFoundException: /mnt/c/ctakes/SparkCtakes/jar:file:/mnt/c/ctakes/SparkCtakes/lib/ctakes-assembly-4.0.1.jar!/resources/org/apache/ctakes/dictionary/lookup/fast/sno_rx_16ab/sno_rx_16ab.lck (No such file or directory)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
at org.hsqldb.persist.Logger.open(Unknown Source)
at org.hsqldb.Database.reopen(Unknown Source)
at org.hsqldb.Database.open(Unknown Source)
at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
at org.hsqldb.DatabaseManager.newSession(Unknown Source)
... 112 more
私は、データベースのリソースを含む、この脂肪jarファイルを作成しています方法はsrc/main/scala/resources
内のリソースフォルダを配置してから、すべてをパッケージ化するsbt-assembly
を使用することです。
接続URLに '読み取り専用= true'を追加します。 – fredt
文字列を 'jdbc:hsqldb:file:resources/org/apache/ctakes/dictionary/lookup/fast/sno_rx_16ab/sno_rx_16ab; hsqldb.lock_file = false; readonly = true'に変更しましたが、私はまだ同じエラーに遭遇しています。 – mongolol