使用Hibernate和JBoss的JTA BMT事务只执行数据库读取,不执行写入

使用Hibernate和JBoss的JTA BMT事务只执行数据库读取,不执行写入,hibernate,jboss,Hibernate,Jboss,我在SOAP web服务应用程序中使用Hibernate使用BMT JTA事务。Hibernate读取工作正常,但插入或更新虽然返回,但没有错误,但数据库中的记录没有更新或创建。在更新的情况下,我会收到一条成功的web服务消息,在插入的情况下,我会收到分配了主键的新实体。但在数据库中,不存在这样的更新或新实体。这种行为最初是在Websphere Liberty Profile Server 8.5上观察到的,因此考虑到Websphere中的一些问题,我们随后转向JBoss App Server

我在SOAP web服务应用程序中使用Hibernate使用BMT JTA事务。Hibernate读取工作正常,但插入或更新虽然返回,但没有错误,但数据库中的记录没有更新或创建。在更新的情况下,我会收到一条成功的web服务消息,在插入的情况下,我会收到分配了主键的新实体。但在数据库中,不存在这样的更新或新实体。这种行为最初是在Websphere Liberty Profile Server 8.5上观察到的,因此考虑到Websphere中的一些问题,我们随后转向JBoss App Server 7.2。但观察到了同样的行为

我已经调试了代码,在流程中没有看到任何错误。事务已提交,休眠会话已成功关闭。但是当web服务响应返回时,我在JBoss服务器控制台中看到了这个错误

JBAS010152: APPLICATION ERROR: transaction still active in request with status 0 如您所见,我们使用DB2作为数据库。我的XA数据源是在JBoss的standalone.xml中定义的,它使用JBoss的db2jcc4.jar作为驱动程序

谢谢你的帮助 谢谢

connection.autocommit=false    
hibernate.default_schema=CLI_MANG    
dialect=org.hibernate.dialect.DB2Dialect
hibernate.connection.datasource=java:/comp/env/jdbc/ClientManagementDS
hibernate.transaction.jta.platform=
org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform
hibernate.transaction.factory_class=
org.hibernate.engine.transaction.internal.jta.JtaTransactionFactory
hibernate.current_session_context_class=jta