我正在使用maven-jetty-plugin来运行Spring应用程序。最初,数据源是在Spring内部声明的。由于外部的constratins,我把它移到了JNDI。我用于本地开发的jetty-env.xml部分是:
<New id="dataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg></Arg>
<Arg>jdbc/DataSource</Arg>
<Arg>
<New class="com.mchange.v2.c3p0.ComboPooledDataSource">
<Set name="driverClass">org.hsqldb.jdbcDriver</Set>
<Set name="jdbcUrl">jdbc:hsqldb:file:target/file.db;shutdown=true
</Set>
<Set name="user">sa</Set>
<Set name="password"></Set>
<Set name="initialPoolSize">3</Set>
<Set name="maxPoolSize">5</Set>
<Set name="numHelperThreads">2</Set>
<Set name="breakAfterAcquireFailure">true</Set>
</New>
</Arg>
</New>
不幸的是,我看不到能够重新启动Web上下文,因为数据库仍处于锁定状态。对我在这里做错了什么的想法?
答案 0 :(得分:0)
您是否允许干净地关闭服务器?即你是如何“运行”你的开发环境的?你怎么把它关掉?
如果您在Eclipse下运行它,您可能有机会在控制台上按“enter”,这将干净地关闭您的系统并导致db释放它的文件锁定。但是,如果您“杀死”您的环境(单击Eclipse中的红色停止按钮,或者可能是控制台中的ctrl-c),HSQLDB可能没有更改以释放它的基于文件的锁定。
如果您正在进行此项开发 - 是否考虑过运行内存数据库?它使开发和自动化单元测试更快!