【发布时间】:2011-05-20 06:43:26
【问题描述】:
我尝试建立一个本地开发基础架构,我想将HSQLDB 用作我的 WAS 6.1 的数据源。我已经知道我必须使用Apache DBCP 来获得连接池,但是当我的应用程序尝试获得第一个连接时我被卡住了。
我做了什么
在 WAS 中,我使用类 org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS 创建了一个 JDBC 提供程序,并从类路径输入字段中删除了所有内容。然后我把commons-dbcp.jar、commons-pool.jar和hsqldb.jar放到MYAPPSERVERDIRECTORY/lib/ext.
然后我使用该提供程序创建了一个新数据源。我添加了以下自定义属性:
driver=org.hsqldb.jdbc.JDBCDriverurl=jdbc:hsqldb:file:///C:/mydatabase.db;shutdown=trueuser=SApassword=
我的问题
当我运行我的应用程序并首次连接到数据库时,我得到以下异常:
---- Begin backtrace for Nested Throwables
java.sql.SQLException: No suitable driverDSRA0010E: SQL-Status = 08001, Fehlercode = 0
at java.sql.DriverManager.getConnection(DriverManager.java:592)
at java.sql.DriverManager.getConnection(DriverManager.java:196)
at org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS.getPooledConnection(DriverAdapterCPDS.java:205)
at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper$1.run(InternalGenericDataStoreHelper.java:918)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledConnection(InternalGenericDataStoreHelper.java:955)
at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:1437)
at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:1089)
at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:1837)
at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1568)
at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2338)
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:909)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:599)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:439)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:408)
对此有什么建议吗?我怀疑我使用了 hsqldb 中的错误类,或者我的 JDBC url 错误...
【问题讨论】: