HSQLDBファイルモード。

主にサンプル用DBとしてHSQLDBをfileモードで使う時、
接続URLの末尾に;shutdown=trueと付けると、
Connectionをcloseする度に、ローカルファイルのロックを解除するので
謎のエラーに悩まされずに済むですよ。

<component name="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <property name="driverClassName">
        "org.hsqldb.jdbcDriver"
    </property>
    <property name="URL">
        "jdbc:hsqldb:file:"
        + @org.seasar.framework.util.ResourceUtil@getBuildDir("data").getCanonicalPath()
        + "/data/demo;shutdown=true"
    </property>
    <property name="user">"sa"</property>
    <property name="password">""</property>
</component>


こんなスタックトレースが出る時は、
上の設定を使うと良い感じで解消する様になります。

java.sql.SQLException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@15991d5[file =D:\development\java\runtime-EclipseApplication\aaaa\target\test-classes\data\demo.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception:  プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。 : D:\development\java\runtime-EclipseApplication\aaaa\target\test-classes\data\demo.lck
	at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
	at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source)
	at org.hsqldb.jdbcDriver.getConnection(Unknown Source)