2012-06-19 28 views
1

在我的任務中,我需要保存磁盤上的文件並更新數據庫中的信息。 保存文件和更新數據庫中的信息時可能會發生異常。 是否存在一些現成的開源解決方案或需要從頭開始編寫? 謝謝。在java中的數據庫和磁盤協調保存

+0

您是否在使用任何交易協調系統? –

回答

1

在Java中,企業交易管理由JTA spec至極排除在Java EE中使用。

JTA允許創建幾個事務管理與型動物的實現(一個數據庫,一個用於文件),使他們共同制定一個跨交易 我覺得這可能是一個方法可以讓你做你想做的

在容器外面,有可能整合JTA。你應該看看SpringJBoss實現

this blog post關於Spring和交易使用

3

XADisk提供事務性訪問文件系統的更多信息。從他們的網站:

XADisk(發音爲「X-A-盤」)能夠通過提供API來執行文件/目錄 操作 現有文件系統的事務性訪問。通過簡單的步驟,它可以部署在任何JVM上,然後可以在任何地方開始運行各種運行 的Java/JavaEE應用程序。

+2

更具體,因爲我們有多個資源(在這種情況下,兩個文件系統和數據庫)被合併成一個事務,Java應用程序將需要使用:1)一個XA事務管理器(例如Atomikos ),2)來自數據庫的XA支持(大多數數據庫已經擁有),3)來自文件系統的XA支持(因爲大多數文件系統本身不支持XA,XADisk可以用來添加XA支持)。 –

+0

設置的好總結。 – Nicholas