at org.enhydra.jdbc.pool.GenericPool.getFromPool(GenericPool.java:200)
at org.enhydra.jdbc.pool.GenericPool.checkOut(GenericPool.java:351)
at org.enhydra.jdbc.pool.StandardPoolDataSource.getConnection(StandardPoolDataSource.java:194)
at org.enhydra.jdbc.pool.StandardPoolDataSource.getConnection(StandardPoolDataSource.java:164)
at my.jotm.test.Client.getConnection(Client.java:63)
java.sql.SQLException: SQLException in StandardPoolDataSource:getConnection exception: java.sql.SQLException: SQLException in
StandardPoolDataSource:getConnection no connection available java.lang.NullPointerException
发现这是XApool1.5的一个bug
解决方法:
--- xapool/org/enhydra/jdbc/pool/GenericPool.java-1.13 2005-06-14 21:57:10.756790600 -0500
+++ xapool/org/enhydra/jdbc/pool/GenericPool.java 2005-06-15 13:11:09.601072300 -0500
@@ -189,6 +189,12 @@
o = (GenerationObject) e.nextElement();
life = (Long) unlocked.get(o);
+ if (life == null) {
+ // Fix for #303462; note that this fixes the problem, but Enumeration's on Hashtable's
+ // are by definition somewhat unpredictable; a more robust fix may be in order
+ log.debug("GenericPool:getFromPool fix for #303462 encountered");
+ continue;
+ }
unlocked.remove(o);
// In any case the object will be removed.
// Prevents others accessing the object while we are
下载xapool源码包,然后在org.enhydra.jdbc.pool.GenericPool中,找到life = (Long) unlocked.get(o); 代码
之后在下面加入:
if (life == null) continue;
之后重新编译打包即可。
注:xapool1.5是在jdk1.4的版本下编译的,所以记得在打包修改时,将IDE的J2SE版本改为1.4。
以下提供我已经编译好的jar包,使用中如果看到bad version的错误,请自行编译。
分享到:
相关推荐
总结来说,XAPool是JTA分布式事务处理的重要组件,提供了一种高效的数据库连接池解决方案,对于构建大规模、高并发的Java应用尤其有价值。这个资源包包含了XAPool的两个主要版本,以及对应的源码,对于学习和使用...
8. **SmartPool**:模仿应用服务器对象池特性,解决连接泄漏、阻塞等问题,支持多池、自动关闭JDBC对象等。 9. **MiniConnectionPoolManager**:轻量级且无第三方依赖的JDBC数据库连接池,适用于简单场景。 10. **...
《深入解析xapool-1.5.0-src:挖掘JDBC连接池的源码奥秘》 在Java开发中,数据库连接管理是一项至关重要的任务,有效地管理数据库连接可以提高系统的性能和稳定性。xapool-1.5.0-src是Enhydra项目中的一个开源JDBC...
9. **XAPool**:XAPool是GigaSpaces XAP的一部分,主要用于提供高可用性和容错性的数据库连接池。XAPool与分布式事务处理相结合,适合在分布式环境中使用。 10. **rpDatabasePool2_0**:这可能是一个特定版本的...
xapool-1.6jar包,修复了以前版本的bug
**XAPool** 是一个基于X/Open XA的JDBC连接池,提供高性能和高可用性的事务处理。在配置中,你需要定义连接池大小、超时时间、验证查询等参数,以优化数据库连接的管理。 在"studentManager"这个项目中,这些组件...
xapool.jar............
开源XA JDBC池 com.experlog/xapool/1.4/xapool-1.4.jar
在JOTM中,XAPool jar 文件(xapool.jar)的作用是提供连接池服务,允许JOTM更有效地管理和复用数据库连接,减少创建和销毁连接的开销,提高系统性能和资源利用率。XAPool 是X/Open XA资源适配器的一个组成部分,它...
开源XA JDBC池 com.experlog/xapool/1.6-beta/xapool-1.6-beta.jar
- 这里`xaDataSourceClassName`指定了MySQL的XAPool连接池类,`url`是数据库连接地址,`user`和`password`是数据库访问凭证。 4. **所需Jar包**: - 为了使ActiveMQ能与MySQL 8通信,你需要在ActiveMQ的`lib`目录...
Druid是一个优秀的数据库连接池组件,而AtomikosDataSource则是处理分布式事务的重要工具。下面我们将详细探讨如何利用Spring、Druid和AtomikosDataSource来实现这些功能。 1. **Spring框架与数据源** Spring提供...
`xapool.jar`是XAPool,它是Apache软件基金会的一个项目,提供了一个高效的JDBC连接池,对JOTM这样的事务管理器非常有用。 `spring.jar`包含了Spring框架的核心类,其中包括了Spring的事务管理组件。`aspectjweaver...
5. xapool.jar:这通常是一个连接池库,例如XAPool,用于高效管理数据库连接。 6. jotm-1.4.3.jar:与上面的jotm.jar类似,是JOTM的另一个版本,版本号为1.4.3。 7. jonas_timer-1.4.3.jar:可能与Jonas服务器(一...
- **XAPool 或其他连接池**:为了支持JTA,你需要一个JTA兼容的数据源,如XAPool,它可以提供JTA连接池。 - **Atomikos、Bitronix等JTA实现**:这些第三方库实现了JTA规范,可以用来管理分布式事务。 6. **配置...
9. **xapool.jar**:这个库通常用于数据库连接池,如XAPool,它是Apache的Jakarta Commons Pool的特定实现,用于管理数据库连接的分配和回收。 10. **struts2-spring-plugin-2.1.8.1.jar**:这是Struts2的Spring...
- Atomikos提供了XAPool,这是一个连接池实现,支持JTA。需要配置Atomikos的数据源,如`com.atomikos.jdbc.AtomikosDataSourceBean`,并设置相应的JDBC连接信息。 5. **Spring的事务管理** - 使用`@Transactional...
xapool.jar可能包含的是XAPool,这是一个连接池库,用于提高数据库连接的复用率,减少创建和关闭连接的开销。 接下来是Struts框架,它是基于MVC(模型-视图-控制器)设计模式的Java Web开发框架。Struts负责处理...
在Java企业级应用开发中,事务管理是至关重要的部分,特别是在分布式系统中。Spring框架提供了强大的事务管理功能,使得开发者可以方便地在不依赖特定应用服务器(如JBoss)的情况下,实现在轻量级容器(如Tomcat)...