出现异常错误:
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The database is already in use by another process: org.hsqldb.persist.NIOLockFile@4a60a3da[file =D:/Zhao/Code/OTAS-DS-Workspace/OTAS-DS-Server/output/Funambol/tools/hypersonic/data/funambol.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception: 进程无法访问文件,因为另一个程序已锁定文件的一部分。 : D:/Zhao/Code/OTAS-DS-Workspace/OTAS-DS-Server/output/Funambol/tools/hypersonic/data/funambol.lck)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.npower.ds.core.UserSmsQueueDAO.getQueryList(UserSmsQueueDAO.java:70)
... 42 more
Caused by: java.sql.SQLException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@4a60a3da[file =D:/Zhao/Code/OTAS-DS-Workspace/OTAS-DS-Server/output/Funambol/tools/hypersonic/data/funambol.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception: 进程无法访问文件,因为另一个程序已锁定文件的一部分。 : D:/Zhao/Code/OTAS-DS-Workspace/OTAS-DS-Server/output/Funambol/tools/hypersonic/data/funambol.lck
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.(Unknown Source)
at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
at org.hsqldb.jdbcDriver.connect(Unknown Source)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
... 44 more
弄了半天,到最后找到原因
原来是URL的问题,写成以文件方式了
<parameter>
<name>url</name>
<value>jdbc:hsqldb:file:c:/hypersonic/lib/../data/funambol</value>
</parameter>
应该是:
<parameter>
<name>url</name>
<value>jdbc:hsqldb:hsql://localhost/funambol</value>
</parameter>
(我的是以hsqldb数据库为例)