2009-06-08 100 views
1

我正在使用maven-jetty-plugin运行Spring应用程序。数据源最初是在Spring内部声明的。由于外部惯例,我将它移至JNDI。我用当地发展码头-env.xml部分是:重新启动后无法在Jetty中重新使用HSQLDB

<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

您是否允许彻底关闭服务器?即你如何'运行'你的开发环境?你如何关闭它?

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

如果您正在为开发做这些 - 您是否考虑过运行内存数据库?它使开发和自动化单元测试快得多!