位背景:我遇到了一个问题,我越挖掘它越多的XA似乎是正确的解决方案。我有一个“缓存”,它基本上是一个内存数据结构(树状目录),用于保存一些处理过的信息。使用Spring
,我们有我们的数据库集并使用@Transactional
,它一直像魅力一样工作。对于大型复杂的业务逻辑,ACID在我们的数据库中保持真实,一切都很好。问题是我们在内存中的数据结构不是Transactional
。XA感知数据结构(非数据库)
我已经学会了当地和全球事务之间的差异,以及全球各种似乎正是我需要的。当我们执行逻辑时,我们使用“缓存结构”作为通知我们做出决定的一种方式。然后,这些更改需要传播到数据库,但是如果需要回滚数据库,“缓存”不会。
问题javax.transaction.xa.XAResource
接口是什么需要为我的自定义数据结构?我是否理解XA,但不理解它在非数据库/ JMS /等中的使用。设置,但更简单一些?我不介意把工作放在基本上包裹我的结构并实施的地方,但我不确定它是否能达到我真正想要的目标。
TLDR:是否正在实施javax.transaction.xa.XAResource
可以用于不涉及复杂数据库的简单数据结构,还是有些我不明白的JTA
?