使用交易式NTFS的時機
應用程式可以使用交易式NTFS(TxF) 在非預期的錯誤狀況期間保留磁碟上數據的完整性。 一般而言,如果應用程式正在排清檔案,並使用其他技術來維護數據完整性,則應用程式應該考慮使用 TxF。 TxF 可以執行得更好,並簡化應用程式的錯誤處理程式碼,同時改善錯誤復原和可靠性。 本主題中的下列各節提供案例範例,讓您使用 TxF。
更新檔案
檔案的更新是常見且通常簡單的作業。 不過,如果系統或應用程式在更新磁碟上的資訊時失敗,結果可能會是災難性的,因為用戶數據可能會因為部分完成的檔案更新作業而損毀。 健全的應用程式通常會執行複雜的檔案複製和檔案重新命名順序,以確保如果系統失敗,數據不會損毀。
TxF 可讓應用程式輕鬆地保護檔案更新作業,避免系統或應用程式失敗。 若要安全地更新檔案,應用程式會以交易模式開啟檔案、進行必要的更新,然後認可交易。 如果系統或應用程式在檔案更新期間失敗,TxF 會自動將檔案還原至檔案更新開始前的狀態,以避免檔案損毀。
多檔案更新
當單一邏輯作業影響多個檔案時,TxF 就更加重要。 例如,如果您想要使用工具來重新命名網站上的其中一個 HTML 或 ASP 頁面,設計良好的工具也會修正所有連結,以使用新的檔名。 不過,此作業期間失敗會使網站處於不一致的狀態,其中一些連結仍參考舊檔名。 藉由將檔案重新命名作業和連結修正作業設為單一交易,TxF 可確保檔案重新命名和連結修正成功或失敗為單一作業。
一致的並行更新
TxF 會隔離並行交易。 如果應用程式開啟交易式讀取的檔案,而另一個應用程式針對交易式更新開啟相同的檔案,TxF 會隔離兩個交易的效果。 換句話說,交易式讀取器一律會檢視單一且一致的檔案版本,即使該檔案正在由另一個交易更新。
應用程式可以使用這項功能,讓客戶在其他客戶進行更新時檢視檔案。 例如,交易式 Web 伺服器可以提供單一且一致的檔案檢視,而另一個工具同時更新這些檔案。
注意
TxF 不支援不同交易中多個寫入者的並行更新。 TxF 僅支援具有多個並行和一致讀取器的單一寫入器。
與其他涉及交易的資源管理員協調
與交易文件系統搭配使用的交易也可以與交易登錄搭配使用。 檔案和登錄的更新會與單一交易協調。
藉由使用 分散式交易協調器 (DTC) 交易或 System.Transactions,對 SQL、MSMQ 和其他交易資源的更新可以與交易式檔案更新協調。 如需詳細資訊,請參閱 DTC IKernelTransaction。
不支援的案例
TxF 不支援下列交易案例:
- 網路磁碟區上的交易,例如檔案共用上的交易。 CIFS/SMB 通訊協定不支援 TxF。
- NTFS 以外的任何文件系統上的交易。
- 針對用戶端快取所快取的檔案進行處理作業。
- 使用物件識別碼進行檔案存取。
- 任何共用撰寫者情境。
- 開啟檔案一段較長時間(天數或周數)的任何情況。