2013-08-12 74 views
1

我正在使用spring集成通過JMS向其他系統發送信息。目前在系統中,我們有以下步驟:Spring與JMS和DB的集成和事務處理

  1. 更新的Oracle數據庫狀態說「批准」
  2. 發送JMS消息關閉以外部系統。
  3. 提交

一個。那麼如果在(2)發送JMS失敗了呢?我們如何知道並回滾數據庫? b。 (3)提交失敗怎麼辦?我們如何回滾?

代碼或示例配置示例將會有所幫助。

感謝 GM

回答

3

你也可以使用Spring Data的ChainedTransactionManager進行Best Effort 1PC。這與XA一樣安全,但您必須在接收方處理重複的消息,無論這兩個系統是否都一致地使用XA,您都必須這樣做。這個blog post描述瞭如何使用盡力而爲的1PC來解耦傳入和傳出的事務處理。