项目需要用到双数据源,而对于连接池,我选择了备受好评的Proxool,结果在spring配置了两个数据源,测试事务的时候,发现不发生错误,
数据也无法提交出去。。。。。这让我纳闷了很久很久。。。一直以为是我双数据源配置错了,因为在SSH+proxool的情况下配置双数据源真的是第一次
尝试。。。。。
后来逐步测试,直到把双数据源配置去了也发现不能插入,于是开始怀疑是数据库的问题。。。结果不是,后来在想,难道proxool的配置被我改烂了?想想也不至于那么差劲吧~~
然后重新恢复原始配置,发现proxool的数据源无法插入数据,但是能查询,换成jdbc则都可以,看来这是proxool的问题了。。。找到根
源所在,立马对症下药。。。。但是网上也找不到很满意的答案,或者就是不了了之的,而且有这种问题的还真的都是使用proxool数据源的。。。。看来
proxool本身存在很多问题啊。。。
再测试看看为什么proxool的数据出问题,在proxool和jdbc来回切换间,发现自增长主键的值并不连续的,开始怀疑proxool并不是没有提交查询,而是自动回滚了。。。。,打开SQL事件探测器追踪。。。
果然自动回滚了。。。。。
如下:
SET IMPLICIT_TRANSACTIONS ON
go
declare @P1 int
set @P1=1
exec sp_prepare @P1 output, N'@P0
nvarchar(4000),@P1 nvarchar(4000)', N'insert into
testdatabase.dbo.users (name, deptcode) values ( @P0 , @P1 ) SELECT
SCOPE_IDENTITY() AS ID', 1
select @P1
go
exec sp_execute 1, N'kk', NULL
go
IF @@TRANCOUNT > 0 ROLLBACK TRAN
go
IF @@TRANCOUNT > 0 COMMIT TRAN
SET IMPLICIT_TRANSACTIONS OFF
go
这个真是郁闷。。。。proxool这种问题也有阿,有查了下相关的资料,发现很少有人遇到这个问题,只有一个人也说发现了这样的问题,只要使用
hibernate加载proxool配置文件就会这样。。。我是使用spring来控制hibernate参数,参数中配置了hibernate加载
proxool文件的。。。。。。
于是使用了hibernate的参数hibernate.connection.autocommit,设为了true
再测试。。问题居然解决。。。。。至此告一段落。。。虽然proxool的口碑不错,但是配置至今,我发现这家伙的bug还是非常多阿。。。。至今为止已经遇到不少了,而且很多是众所周知的。。。而今天这个也算是一个大bug之一了。。。。
分享到:
相关推荐
本项目采用当前主流的MVC和IOC框架spring 3、优秀的ORM框架hibernate和超级厉害的proxool数据库连接池。这个工程demo,是本人在企业应用中的项目缩影,绝对实用于企业的应用。 适合朋友: 1.一直用单独的servlet和...
Spring+proxool+hibernate+struts2+aop整合的完整的简单项目
Spring+proxool+hibernate+struts2+aop整合的完整_Jar包
proxool与hibernate的配置
struts2+hibernate3.2+spring2.5 proxool成步骤
spring3.0.4+hibernate3.5.0+proxool 0.9.1+jstl整合最新的JAVA WEB框架,没有使用struts2,视图层使用spring MVC.
hibernate+proxool+Oracle库
Struts2+Spring3+Hibernate3+Proxool_亲测成功 费大劲了.zip
自己写的hibernate+proxool的demo整合,亲测可用。项目可以拿来做做参考。如果有什么问题 欢迎留言作讨论。使用的话,请自己配置好proxool.xml文件 以及导入resources里面的sql(这里的sql是demo里面的entity表)
spring+proxool配置spring+proxool配置spring+proxool配置
struts2.2.3+spring2.5.6+hibernate3.2+proxool0.9.1 proxool数据库连接池例子 0资源下载
是spring中引入连接池 博文链接:https://yanghaiskys.iteye.com/blog/215424
自己整理的springmvc+hibernate+proxool+freemariker需要的所有包
NULL 博文链接:https://devsky.iteye.com/blog/1038804
jQuery+json+struts2+spring3(事务,AOP,IoC即DI)+hibernte3+EhCache+oscache+proxool+MySQL+SiteMesh+Gzip lj例子
框架整合Spring MVC3.23+Spring3.23+Hibernate4.2.3+Activiti5.16.3,三层架构dao,service,controller,使用proxool连接池(已配置好监听器),默认链接mysql数据库。可根据项目开发需要,做适当修改,各项配置齐全...
数据库struts2.3.4.1+hibernate3.6.10+sping3.1.2(sql2000+proxool)+displaytag 据库 struts+hibernate+sping sql2000 proxool displaytag
Extjs3.2+struts2.0+spring2.5+hibernate3.5+weblogic10+oracle10g 第4部分
struts hibernate sping sql2000 proxool displaytag 源码 实例 struts2.3.4.1+hibernate3.6.10+sping3.1.2(sql2000+proxool)+displaytag原创代码实例 sqlserver2000搭建ssh proxool连接池