使用websphere数据源连接SQL-SERVER spring事务时,将REQUIRES_NEW或NOT_SUPPORTED传播挂起(锁定)。
使用BasicDataSource或其他任何内容时都不是这种情况。
请帮忙。
答案 0 :(得分:0)
REQUIRES_NEW和NOT_SUPPORTED都是阻止在当前事务中运行操作的事务属性(将暂停然后再恢复)。 WebSphere Application Server数据源知道容器管理的事务,并将在其中登记。我不确定BasicDataSource是什么,但如果它不知道容器事务,那可以解释为什么你会看到行为上的差异。
导致单线程死锁的流程可能是这样的:
如果这是您所看到的,它按照设计按规格运行,如果您希望操作在同一事务中运行,则应考虑使用不同的事务属性,例如SUPPORTS。