spring事物和db连接池的一些想法

当用spring的事物来管理 hibernate的session时,如果在事物中进行了 delete,save,update等操作,则连接不会释放,需要等到事物完成后才会进行关闭,所以当事物中有大量连接时 可想而知 ,这是个灾难。

按照我的想法,只对特定标识的 方法进行事物控制,这需要一个命名规则的问题。其他的方法不需要进行控制,没必要,要不然事物粒度太小了。

      我遇到了两个问题: updateA(  调用1000次  updateB)  ;  updateB( updateC,updateD,...)

我将update开头的方法都进行了事物拦截,   updateB是private的。

每次我调用updateA时 ,就会产生几千个数据库连接 ,于是连接池爆满,然后挂掉。

这里是能理解的  ,updateB中产生了 数据操作, 于是连接不会关闭,等待事物关闭后才能释放。

 

我去掉数据库连接池,采用直连的方式,连接数据库,则连接就不会超过10个,当数据库连接调用完后,连接释放了。

 

我一直搞不明白这是怎么回事,貌似在 直连和连接池下,事物的实现方式是不一样的  。唉去研究他们的源码。郁闷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值