簡體   English   中英

非數據庫應用程序事務

[英]Non-database application transactions

如何將非數據庫操作封裝到事務中?

例如,假設我有一些順序調用的方法/函數,一些更新數據庫,一些文件系統更新文件,HttpSession中的一些更新參數,一些更新緩存等。如果后一個失敗,比如更新會話,如何在文件系統,數據庫等中回滾所有其他更改?

環境是像Tomcat這樣的Java Servlet容器,類似於Struts2,任何RDBMS,像Hibernate或Ibatis這樣的持久層等。

所有這些都必須是事務性資源,能夠參與兩階段提交協議,以便做你想做的事情。

除非您的代碼中有錯誤,否則會話的更新永遠不會失敗。 因此,您可以在其他更新成功后執行此操作。 如果您需要事務性事務,則應該避免使用文件系統。 替代方法可以是先保存到文件系統,然后進行數據庫更新,如果數據庫更新失敗,則接受文件系統中無用的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM