Share via


使用交易式 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 以外的任何檔案系統上的交易。
  • 針對用戶端快取所快取的檔案進行交易作業。
  • 使用物件識別碼進行檔案存取。
  • 任何共用寫入器案例。
  • 任何開啟檔案一段時間 (天或周) 的情況。