【发布时间】:2019-06-19 07:13:01
【问题描述】:
我正在尝试了解 Java XA 数据源的使用。 但是我还是不知道什么时候用,什么时候不用。
我读到我们使用两个数据库时使用的 XA 数据源。 但是我不确定两个数据库是什么意思。
例如:
我有两层类(Service 和 DAO)
服务层中的一个方法被注解为事务,调用DAO中的两个方法。
DAO 中的每个方法都会打开与数据库的新连接,并在方法结束时将其关闭。
如果我使用一个数据库实例,并且 DAO 中的每个方法写入不同的表,我是否必须使用 XA 数据源?因为事务发生在服务层,但只发生在一个实例数据库中
【问题讨论】:
-
如果您在物理上连接到 2 个不同的数据库实例,则需要 XA(即使那样,如果您只在事务中访问 1,也不一定需要 XA)。根据经验,如果您需要在单个事务中访问不同的事务资源,则需要 XA。
标签: java spring oracle mybatis jta