Jakarta ee 从码头到WAS的不同锁定行为

Jakarta ee 从码头到WAS的不同锁定行为,jakarta-ee,jdbc,db2,websphere,Jakarta Ee,Jdbc,Db2,Websphere,我正在使用spring的taskexecutor(在WAS上使用workmanager,在jetty上使用threadpool)开发一个web应用程序,其进程运行在不同的线程上 该应用程序使用spring/hibernate/db2(udb) 异步进程创建一个状态和进度记录,可以在包含进程历史记录的页面中查看该记录 在websphere上运行并尝试访问进程列表时,它似乎在等待进程完成,最后抛出一个“正在使用的文件”sql异常并回滚更改。这不会发生在具有相同数据库的jetty上 我的问题是,为什么

我正在使用spring的taskexecutor(在WAS上使用workmanager,在jetty上使用threadpool)开发一个web应用程序,其进程运行在不同的线程上

该应用程序使用spring/hibernate/db2(udb)

异步进程创建一个状态和进度记录,可以在包含进程历史记录的页面中查看该记录

在websphere上运行并尝试访问进程列表时,它似乎在等待进程完成,最后抛出一个“正在使用的文件”sql异常并回滚更改。这不会发生在具有相同数据库的jetty上


我的问题是,为什么我看到从jetty到websphere的不同锁定行为,以及如何解决这个问题。jdbc驱动程序设置在这两个容器上都是默认设置。

看起来这两个容器使用不同的事务隔离级别。查看这是否有助于WAS:。引用“本文档将讨论WebSphere应用程序中默认设置事务隔离级别的方式、内容和位置,以及特定资源引用。”

我没有关于dbms设置的详细信息。为了澄清,jetty和WAS都设置为使用相同的数据库。感谢链接,这真的很有帮助。这个问题似乎是双重的。1.WAS默认为可重复读取。我将WebSpheredFaultIsolationLevel DS属性和资源\u ref扩展设置为READ\u COMMITTED。问题仍然存在,症状略有不同。2.未提交状态记录的更新。我在status方法中添加了propagation=REQUIRES_NEW in@Transactional,以便在单独的事务中运行日志记录。我猜jetty没有遇到任何问题,因为它默认为read_uncommitted。将运行更多测试以进行确认。我删除了READ_COMMITTED设置,并且没有遇到文件使用问题。设置TR传播解决了该问题。这确认jetty默认为READ_UNCOMMITTED