`

XApool连接池报空指针错误解决

    博客分类:
  • Java
阅读更多
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的错误,请自行编译。

分享到:
评论
5 楼 LAFEU 2013-12-10  
3Q!
4 楼 eppen 2013-01-14  
官方的xapool 1.6beta版本已经修正了该问题,以及其他问题。

http://xapool.ow2.org/
3 楼 bjyzxxds 2012-05-03  
问题解决,非常感谢
2 楼 无花果 2012-02-22  
大神,谢谢你! 
1 楼 helloklzs 2011-04-25  
很有效,谢谢了

相关推荐

    JTA 分布式事务 XAPool 1.5和1.6的所有jar包,源码包

    总结来说,XAPool是JTA分布式事务处理的重要组件,提供了一种高效的数据库连接池解决方案,对于构建大规模、高并发的Java应用尤其有价值。这个资源包包含了XAPool的两个主要版本,以及对应的源码,对于学习和使用...

    数据库连接池以及hibernate对各种连接池的整合

    8. **SmartPool**:模仿应用服务器对象池特性,解决连接泄漏、阻塞等问题,支持多池、自动关闭JDBC对象等。 9. **MiniConnectionPoolManager**:轻量级且无第三方依赖的JDBC数据库连接池,适用于简单场景。 10. **...

    xapool-1.5.0-src 源码下载

    《深入解析xapool-1.5.0-src:挖掘JDBC连接池的源码奥秘》 在Java开发中,数据库连接管理是一项至关重要的任务,有效地管理数据库连接可以提高系统的性能和稳定性。xapool-1.5.0-src是Enhydra项目中的一个开源JDBC...

    Java-ConnectionPools.rar_连接池

    9. **XAPool**:XAPool是GigaSpaces XAP的一部分,主要用于提供高可用性和容错性的数据库连接池。XAPool与分布式事务处理相结合,适合在分布式环境中使用。 10. **rpDatabasePool2_0**:这可能是一个特定版本的...

    xapool-1.6jar包

    xapool-1.6jar包,修复了以前版本的bug

    spring3.0+struts2.0+mybatis3.2+jta+xapool配置文件示例

    **XAPool** 是一个基于X/Open XA的JDBC连接池,提供高性能和高可用性的事务处理。在配置中,你需要定义连接池大小、超时时间、验证查询等参数,以优化数据库连接的管理。 在"studentManager"这个项目中,这些组件...

    xapool.jar

    xapool.jar............

    xapool-1.4.jar

    开源XA JDBC池 com.experlog/xapool/1.4/xapool-1.4.jar

    jotm 的 jar

    在JOTM中,XAPool jar 文件(xapool.jar)的作用是提供连接池服务,允许JOTM更有效地管理和复用数据库连接,减少创建和销毁连接的开销,提高系统性能和资源利用率。XAPool 是X/Open XA资源适配器的一个组成部分,它...

    xapool-1.6-beta.jar

    开源XA JDBC池 com.experlog/xapool/1.6-beta/xapool-1.6-beta.jar

    ActiveMQ配置Mysql8为持久化方式所需Jar包.rar

    - 这里`xaDataSourceClassName`指定了MySQL的XAPool连接池类,`url`是数据库连接地址,`user`和`password`是数据库访问凭证。 4. **所需Jar包**: - 为了使ActiveMQ能与MySQL 8通信,你需要在ActiveMQ的`lib`目录...

    spring+druid+AtomikosDataSource实现多数据源切换及分布式事务控制

    Druid是一个优秀的数据库连接池组件,而AtomikosDataSource则是处理分布式事务的重要工具。下面我们将详细探讨如何利用Spring、Druid和AtomikosDataSource来实现这些功能。 1. **Spring框架与数据源** Spring提供...

    Spring分布式事务实现

    `xapool.jar`是XAPool,它是Apache软件基金会的一个项目,提供了一个高效的JDBC连接池,对JOTM这样的事务管理器非常有用。 `spring.jar`包含了Spring框架的核心类,其中包括了Spring的事务管理组件。`aspectjweaver...

    JOTM开发所需jar包

    5. xapool.jar:这通常是一个连接池库,例如XAPool,用于高效管理数据库连接。 6. jotm-1.4.3.jar:与上面的jotm.jar类似,是JOTM的另一个版本,版本号为1.4.3。 7. jonas_timer-1.4.3.jar:可能与Jonas服务器(一...

    分布式事务操作之Spring+JTA+mybatis源码

    - **XAPool 或其他连接池**:为了支持JTA,你需要一个JTA兼容的数据源,如XAPool,它可以提供JTA连接池。 - **Atomikos、Bitronix等JTA实现**:这些第三方库实现了JTA规范,可以用来管理分布式事务。 6. **配置...

    SSH开发所需的jar包4

    9. **xapool.jar**:这个库通常用于数据库连接池,如XAPool,它是Apache的Jakarta Commons Pool的特定实现,用于管理数据库连接的分配和回收。 10. **struts2-spring-plugin-2.1.8.1.jar**:这是Struts2的Spring...

    spring+mybatis+atomikos配置文件及相关包.rar

    - Atomikos提供了XAPool,这是一个连接池实现,支持JTA。需要配置Atomikos的数据源,如`com.atomikos.jdbc.AtomikosDataSourceBean`,并设置相应的JDBC连接信息。 5. **Spring的事务管理** - 使用`@Transactional...

    简易搭建ssh 框架

    xapool.jar可能包含的是XAPool,这是一个连接池库,用于提高数据库连接的复用率,减少创建和关闭连接的开销。 接下来是Struts框架,它是基于MVC(模型-视图-控制器)设计模式的Java Web开发框架。Struts负责处理...

    Spring中的全局(分布式、容器)事务的项目,可以脱离JBOSS的存在

    在Java企业级应用开发中,事务管理是至关重要的部分,特别是在分布式系统中。Spring框架提供了强大的事务管理功能,使得开发者可以方便地在不依赖特定应用服务器(如JBoss)的情况下,实现在轻量级容器(如Tomcat)...

Global site tag (gtag.js) - Google Analytics