1

我有一个propertiesbean,它给了我SqlSessions。这个 bean 注释了所有这些爵士乐@班级级别

@Singleton
@LocalBean
@Startup
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)

我也有这个

public SqlSessionFactory getSqlSessionFactory(ConnTypes connType) {...}

它返回你想要的 SqlSession。

我有两个数据库。一个是 mysql 实例,另一个不是(我们称之为 db2)。

当我在本地运行项目时,一切都很好。两个数据库都可以毫无问题地访问。

当我在我们的测试服务器上运行项目时,它开始抛出客户端事务中止错误。我对此进行了大量研究,当数据库查询或某些数据库访问出现问题时,似乎人们会遇到这些异常。然后将整个事务标记为回滚并抛出此异常(至少这是我读过的)

在我看来,它在第一次引发客户端的事务中止错误之前就引发了 XA-Resource 错误。我知道当您的 bean 尝试访问另一个会话时,您可以获得这些。在本地运行并尝试以一种方法保持与两个数据库的连接之前,我已经看到过这个错误。

会不会是我的访问两个数据库的单例属性 bean 进入了一个奇怪的事务状态,试图在一个线程中返回一个 mysql 会话并在另一个线程中返回一个 db2 会话?

4

0 回答 0