我的应用程序锁定了数据库表,因为JTA没有使用rollback或commit命令完成您的操作。
应用程序在具有两个托管服务器的群集中的weblogic 10.3上运行。
对数据库进行访问的方法是同步的,其中方法内部的第一部分执行查询,第二部分调用另一个方法来执行合并。此方法具有注释@Transaction(只读= false)。
JTA交易由weblogic执行。
我的问题是,基于所描述的场景,什么可能在数据库中生成锁?
答案 0 :(得分:0)
在我看来一个线程问题,锁定没有获得。
对数据库进行访问的方法在第一部分同步 在方法内部执行查询而第二个调用另一个查询 执行合并的方法。
检查两个方法是否需要两个不同的锁,如果是,则可能导致死锁,如果方法1中的线程一直等待锁访问方法2.