ITPub博客

首页 > Linux操作系统 > Linux操作系统 > WASCE的数据库连接池

WASCE的数据库连接池

原创 Linux操作系统 作者:cow977 时间:2011-05-30 10:32:13 0 删除 编辑
在WASCE中使用ORACLE数据库,按说明配置了数据库连接池,在说明中,说明了“针对OracleMySQLMaxDBTranQL数据库使用Generic JDBC Resource Adapter(tranql-connector-ra-version.rar)时,应在数据库部署规划中使用CommitBeforeAutoCommit="true",这样才能立刻将事务提交至数据库。”因第一次使用,对其中的CommitBeforeAutoCommit不是很理解,况且在WASCE的WEB配置界面中也没有此参数的设置,因而也没作深究。
 
在JAVA项目的数据库操作部分,数据库连接是采用了连接池,并为保证数据一致性,启用了事务且关闭了AutoCommit,事务可以正常Commit/Rollback,在程序中也可以看到数据所作的修改,但在数据库看不到数据修改,换用了程序直接采用JDBC连接数据库而不用连接池,却一切正常。
 
首先怀疑的是WASCE是否采用了EJB或XA之类的分布式事务,但通过对程序运行的跟踪,否定了这一疑点。
 
看来一定是和WASCE中的数据库连接池配置有关。
 
再次翻看配置说明,仔细研究了对CommitBeforeAutoCommit参数的说明,感觉问题与此参数有关。
 
重新配置数据源,要加入CommitBeforeAutoCommit,这次采用命令来部署,重新测试,一切正常。
 

deploy.sh deploy $WASCE_HOME/repository/org/tranql/tranql-connector-ra/1.7/tranql-connector-ra-1.7.rar  plan-pool.xml

 

总结:此例的问题是对AutoCommit的理解产生了问题,数据库连接Connection是有一个AutoCommit参数,表示每次数据库操作后,是否自动提交事务,即是否次每次数据库操作都作为一个独立的事务来处理;而此地的AutoCommit却并非此含义,而是应该理解为连接池管理的事务的自动提交。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/81227/viewspace-696613/,如需转载,请注明出处,否则将追究法律责任。

上一篇: web.xml配置详解2
下一篇: web.xml配置详解3
请登录后发表评论 登录
全部评论

注册时间:2011-03-02

  • 博文量
    698
  • 访问量
    786855