跟大家讨论一个spring hibernate事务管理的问题

loveunittesting 2013-12-17 10:46:15
这个是一个目前没有解决的问题:spring在管理hibernate事务(jdbc应该也有,其他orm也一样)的时候,有致命的bug,连续操作多次数据更新的操作(save和update,delete),会出现数据源死锁的问题。
比如我的情况:

我为一个角色分配权限,也就是在“角色-权限对应表”中插入或者删除数据。我不停的操作几下或者十几下后,系统就不动了,这时候读写都卡住了,只要是访问数据库都会卡在那里,不再继续执行了。我的操作也不会涉及并发问题,因为就我一个人操作就出现了问题。数据库本身通过客户端是可以访问的,没有问题。就是事务管理出现了问题。我是通过声明式事务管理的,spring3.0。网上我搜索了一篇文章,分析出这时一个spring的巨大bug,而且一直没有解决。
不知道spring高版本的是否还有这个问题。或者有什么其他的解决办法。
...全文
385 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveunittesting 2013-12-30
  • 打赏
  • 举报
回复
哎,结贴把,用spring4和hibernate4又实验了一番,还是不行啊。在现有模式下估计spring是搞不定这个问题了。
zuiai_LJX 2013-12-19
  • 打赏
  • 举报
回复
看看是不是连接数用完了
loveunittesting 2013-12-19
  • 打赏
  • 举报
回复
难道真的没人注意到这个bug吗?
乃刀的青春 2013-12-19
  • 打赏
  • 举报
回复
没注意到这个问题,有时间可以试一下
loveunittesting 2013-12-19
  • 打赏
  • 举报
回复
肯定不是这个问题,spring的一个bug,网上我看了一些博客,并自己做了实验,可以确定是spring的一个问题。
heboucheng 2013-12-19
  • 打赏
  • 举报
回复
应该是连接数用完了
UDown 2013-12-17
  • 打赏
  • 举报
回复
能否把spring事务的相关代码贴一下,平时没遇到这个问题
loveunittesting 2013-12-17
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
话说我没遇到过。这个问题是否可以debug下,能确认问题是出在spring还是hibernate。可以给他们发邮件反馈
hibernate是没有问题的,项目目前改成直接使用Hibernate的形式了,spring不再管理事务,这样就没有问题。就是spring的一个bug。
teemai 2013-12-17
  • 打赏
  • 举报
回复
话说我没遇到过。这个问题是否可以debug下,能确认问题是出在spring还是hibernate。可以给他们发邮件反馈
loveunittesting 2013-12-17
  • 打赏
  • 举报
回复
也没什么代码了,就是标准的声明式事务管理。问题时一定有的,并不是我这个是什么特例。如果有解决过的能赐教一下,或者用过高版本的看看这个问题是否依然存在,我正在配置spring4的环境,希望没有这个问题了 <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <aop:config> <aop:pointcut id="serviceOperation" expression="execution(* com.xxx.service.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" /> </aop:config> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="*" read-only="true" /> <tx:method name="save*" read-only="false" propagation="REQUIRED"/> <tx:method name="update*" read-only="false" propagation="REQUIRED"/> <tx:method name="remove*" read-only="false" propagation="REQUIRED"/> </tx:attributes> </tx:advice>

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧