私は次の設定をしています:
mybase.odb
という名前の HSQLDB Split-DB に接続されたLibreOffice ベースmydb
- レポートを開くボタンのあるフォーム
- 基本的に実行するこのボタンの背後にあるマクロ:
shell(convertToUrl(Tools.Strings.DirectoryNameOutOfPath( _
ThisComponent.Parent.getURL(), "/") & "myReport.cmd"), HIDE)
myReport.cmd
内容:
:: From: http://hsqldb.org/doc/2.0/guide/listeners-chapt.html#lsc_listener_types
start /min java -cp %~dp0driver/hsqldb.jar org.hsqldb.server.Server
--database.0 file:mydb --dbname.0 mydb
timeout /t 3
:: From: http://jasperstarter.cenote.de/index.html
jasperstarter -v pr %~dp0myReport.jasper -r -o . -f pdf
-H [localhost|127.0.0.1] --db-port 9001 -n mydb -u myuser
[ここでは読みやすくするために改行を挿入しています。]
HSQLDB サーバーが正常に起動します。
... [Server@1742700]: Startup sequence completed in 382 ms. [Server@1742700]: 2016-05-09 23:05:49.129 HSQLDB server 2.3.2 is online on port 9001 ...
後続JasperStarter
はエラーを表示しませんPDF
が、作成されません。
HSQLDBサーバーの出力に続いて、Server@1742700
私も試しました(希望はほとんどありませんでした):
jasperstarter ... -H 1742700 ... -n Server
無駄に。
以下は、myReport.cmd
スタンドアロンのチャームのように機能します。
jasperstarter pr %~dp0myReport.jasper -r -o . -f pdf -t generic
--jdbc-dir %~dp0driver --db-driver org.hsqldb.jdbcDriver
--db-url jdbc:hsqldb:file:%~dp0database/mydb;sql.syntax_mys=true;shutdown=true
-u myuser
[ここでは読みやすくするために改行を挿入しています。]
しかし、もちろん、mybase.odb
開いている場合はそうではありません:
Unable to connect to database: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@68306856[file =<path>\database\mydb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2016-05-09 21:25:13 heartbeat - read: -6188 ms.
ところで、locked=false
ロックファイルが存在するのはなぜですか?