트랜잭션 NTFS를 사용해야 하는 경우

애플리케이션은 TxF(트랜잭션 NTFS)를 사용하여 예기치 않은 오류 조건 동안 디스크에 있는 데이터의 무결성을 유지할 수 있습니다. 일반적으로 애플리케이션이 파일을 플러시하고 다른 기술을 사용하여 데이터 무결성을 유지하는 경우 애플리케이션에서 TxF를 사용하는 것을 고려해야 합니다. TxF를 사용하면 오류 복구 및 안정성을 향상하면서 애플리케이션의 오류 처리 코드를 더 원활하게 수행하고 간소화할 수 있습니다. 이 항목의 다음 섹션에서는 TxF를 사용하는 시나리오의 예를 제공합니다.

파일 업데이트

파일 업데이트는 일반적으로 단순한 작업입니다. 그러나 애플리케이션이 디스크의 정보를 업데이트하는 동안 시스템 또는 애플리케이션에 장애가 발생하는 경우 부분적으로 완료된 파일 업데이트 작업으로 인해 사용자 데이터가 손상될 수 있으므로 결과가 치명적일 수 있습니다. 강력한 애플리케이션은 시스템 장애 시 데이터가 손상되지 않도록 파일 복사본 및 파일 이름 변경의 복잡한 시퀀스를 수행하는 경우가 많습니다.

TxF를 사용하면 애플리케이션이 시스템 또는 애플리케이션 장애로부터 파일 업데이트 작업을 간단하게 보호할 수 있습니다. 파일을 안전하게 업데이트하기 위해 애플리케이션은 트랜잭션 모드로 파일을 열고 필요한 업데이트를 수행한 다음, 트랜잭션을 커밋합니다. 파일 업데이트 중에 시스템 또는 애플리케이션에 장애가 발생하면 TxF는 파일 업데이트가 시작되기 전의 상태로 파일을 자동으로 복원하여 파일 손상을 방지합니다.

다중 파일 업데이트

TxF는 단일 논리 작업이 여러 파일에 영향을 주는 경우 더욱 중요합니다. 예를 들어 도구를 사용하여 웹 사이트의 HTML 또는 ASP 페이지 중 하나의 이름을 바꾸려는 경우 잘 디자인된 도구는 새 파일 이름을 사용하도록 모든 링크를 수정합니다. 그러나 이 작업 중에 오류가 발생하면 웹 사이트가 일관되지 않은 상태로 남게 되며 일부 링크는 여전히 이전 파일 이름을 참조하게 됩니다. TxF는 파일 이름 바꾸기 작업과 링크 수정 작업을 단일 트랜잭션으로 만들어 파일 이름 바꾸기 및 링크 수정이 단일 작업으로 성공하거나 실패하도록 합니다.

일관된 동시 업데이트

TxF는 동시 트랜잭션을 분리합니다. 다른 애플리케이션이 트랜잭션 업데이트를 위해 파일을 연 상태에서 애플리케이션이 트랜잭션 읽기를 위해 동일한 파일을 여는 경우 TxF는 두 트랜잭션이 영향을 주지 않도록 서로 분리합니다. 즉, 트랜잭션 판독기는 해당 파일이 다른 트랜잭션에 의해 업데이트되는 동안에도 항상 일관된 단일 버전의 파일을 볼 수 있습니다.

애플리케이션은 다른 고객이 업데이트하는 동안 고객이 파일을 볼 수 있도록 이 기능을 사용할 수 있습니다. 예를 들어 다른 도구가 파일을 업데이트하는 동안 동시에 트랜잭션 웹 서버가 파일의 일관된 단일 보기를 제공할 수 있습니다.

참고

TxF는 서로 다른 트랜잭션의 여러 기록기에 의한 동시 업데이트를 지원하지 않습니다. TxF는 일관된 동시 판독기가 여러 대 있는 단일 기록기만 지원합니다.

 

다른 트랜잭션된 리소스 관리자와 조정

트랜잭션된 파일 시스템에서 사용되는 트랜잭션은 트랜잭션된 레지스트리에서도 사용할 수 있습니다. 파일 및 레지스트리에 대한 업데이트는 단일 트랜잭션과 조정됩니다.

DTC(Distributed Transaction Coordinator) 트랜잭션 또는 System.Transactions를 사용하면 SQL, MSMQ 및 기타 트랜잭션 리소스에 대한 업데이트가 트랜잭션된 파일 업데이트와 조정될 수 있습니다. 자세한 내용은 DTC의 IKernelTransaction을 참조하세요.

지원되지 않는 시나리오

TxF는 다음 트랜잭션 시나리오를 지원하지 않습니다.

  • 네트워크 볼륨에서의 트랜잭션(예: 파일 공유). TxF는 CIFS/SMB 프로토콜에서 지원되지 않습니다.
  • NTFS 외의 파일 시스템에서의 트랜잭션.
  • 클라이언트 쪽 캐싱에 의해 캐시된 파일에 대해 트랜잭션 작업.
  • 개체 ID를 사용한 파일 액세스.
  • 모든 공유 기록기 시나리오.
  • 파일이 장시간(며칠 또는 몇 주) 열려 있는 모든 상황.