2009-06-08 87 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可能沒有改變來釋放它的基於文件的鎖。

如果您正在爲開發做這些 - 您是否考慮過運行內存數據庫?它使開發和自動化單元測試快得多!