我正在用Spring Batch編寫大量批量作業,這些批量作業主要是從數據庫導出/導入數據庫。 Spring Batch作業存儲庫數據庫和目標數據庫(來自/我讀/寫數據)位於不同的機器上。春季批次中的XA交易
我的問題是我應該在此配置中使用XA事務嗎?
我想知道在某些時候連接到作業存儲庫數據庫剎車的場景,它是否會潛在地破壞數據?就像這樣:
- 工作啓動(寫入工作資料庫)
- 讀/流程/事務中的目標DB寫入
- 鏈接到工作倉庫分貝剎車和作業失敗
最後我更新了目標數據庫,但作業失敗,因此在作業重新啓動時將再次處理相同的數據。
這將有所幫助,但問題是我無法修改讀取表結構。 – Vladimir
所以我們回到了jobRepository設計的目的;在沒有另一種機制的情況下保持狀態。我的建議是通過一個監聽器保存一個線性的,非事務性的狀態日誌,或者如果它們成爲JobRepository上的失敗,可以用來協調。這將允許您在出現非常規故障的情況下進行協調和處理。 –