重启之间无法在Jetty中重用HSQLDB

时间:2009-06-08 11:52:31

标签: spring maven-2 jetty hsqldb

我正在使用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上下文,因为数据库仍处于锁定状态。对我在这里做错了什么的想法?

1 个答案:

答案 0 :(得分:0)

您是否允许干净地关闭服务器?即你是如何“运行”你的开发环境的?你怎么把它关掉?

如果您在Eclipse下运行它,您可能有机会在控制台上按“enter”,这将干净地关闭您的系统并导致db释放它的文件锁定。但是,如果您“杀死”您的环境(单击Eclipse中的红色停止按钮,或者可能是控制台中的ctrl-c),HSQLDB可能没有更改以释放它的基于文件的锁定。

如果您正在进行此项开发 - 是否考虑过运行内存数据库?它使开发和自动化单元测试更快!