在这种情况下,关键问题是某些JBoss版本中数据源中的默认错误。原始代码很好,并且可以在其他应用程序服务器(WebSphere App
Server和轻量级WebSphere Liberty)中正常工作。
在JBoss中创建的数据源不是JTA-在管理控制台
Use JTA中未选中该设置,而在xml相关设置中则为
<datasourcejta="false" ...。更改此设置
true可解决问题。(JohnB,您写道定义xa-
datasource可以解决此问题,但是由于我没有看到带有数据源定义的原始xml,因此我相信在更改数据源期间,您还更改了有缺陷的jta =“
false”设置)。正如Grzesiek测试的,它也适用于非xa数据源。
这是一个 非常糟糕的默认值 ,因为它导致事务不由容器管理,并 导致EJB 组件 中的连接中的事务行为有缺陷 。
非常感谢Grzesiek D.帮助我诊断了此问题。



