位背景:我遇到了一個問題,我越挖掘它越多的XA似乎是正確的解決方案。我有一個「緩存」,它基本上是一個內存數據結構(樹狀目錄),用於保存一些處理過的信息。使用Spring
,我們有我們的數據庫集並使用@Transactional
,它一直像魅力一樣工作。對於大型複雜的業務邏輯,ACID在我們的數據庫中保持真實,一切都很好。問題是我們在內存中的數據結構不是Transactional
。XA感知數據結構(非數據庫)
我已經學會了當地和全球事務之間的差異,以及全球各種似乎正是我需要的。當我們執行邏輯時,我們使用「緩存結構」作爲通知我們做出決定的一種方式。然後,這些更改需要傳播到數據庫,但是如果需要回滾數據庫,「緩存」不會。
問題javax.transaction.xa.XAResource
接口是什麼需要爲我的自定義數據結構?我是否理解XA,但不理解它在非數據庫/ JMS /等中的使用。設置,但更簡單一些?我不介意把工作放在基本上包裹我的結構並實施的地方,但我不確定它是否能達到我真正想要的目標。
TLDR:是否正在實施javax.transaction.xa.XAResource
可以用於不涉及複雜數據庫的簡單數據結構,還是有些我不明白的JTA
?