读书人

应避免使用嵌套connection的场景否则

发布时间: 2012-09-15 19:09:28 作者: rapoo

应避免使用嵌套connection的场景,否则在高并发下将从出现死锁

例如如下的代码:

?

entityListenerController.afterLoad(className, list);

中使用又调用了另外的manager去执行查询,如此就形成了

ConnectionA open

ConnectionB open

ConnectionB close

ConnectionA close

的情形,这种使用方法在高并发下将导致因获取Connection而引发的死锁。

?

一种解决方法是加上只读事务@Transactional(readOnly = true)

以保证使用同一个Connection。

读书人网 >软件架构设计

热点推荐