VSS 작업 중단
다음 경우 백업 작업 중에 중단 이벤트를 생성할 수 있습니다.
- 요청자는 IVssBackupComponents::AbortBackup을 호출하여 Abort이벤트를 명시적으로 생성합니다.
- 기록기의 Freeze 및 Thaw 이벤트 처리기(CVssWriter::OnFreeze 및 CVssWriter::OnThaw)는 false를 반환하거나 CVssWriter::Initialize에 지정된 시간 창에서 완료할 수 없습니다.
- PrepareForSnapshot 이벤트 이후 섀도 복사본을 만드는 동안 공급자 또는 VSS가 실패합니다.
복원 작업에는 중단이 지원되지 않습니다.
요청자 처리 및 중단 이벤트 만들기
IVSSBackupComponents 인터페이스의 instance 하나의 백업에만 사용할 수 있으므로 백업 처리 시 오류가 발생하면 일반적으로 현재 instance 해제하고 다시 시작하는 것이 가장 좋습니다.
요청자는 기록기와 관련된 백업에 대한 실제 준비 또는 섀도 복사본 만들기가 발생한 후에만 백업 작업을 중단한다는 신호를 명시적으로 보내야 합니다( IVssBackupComponents::AbortBackup 사용).
즉, 요청자가 IVssBackupComponents::P repareForBackup을 호출하여 PrepareForBackup 이벤트를 생성한 후 백업 작업을 중지해야 할 때마다 IVssBackupComponents::AbortBackup을 호출하고 현재 IVSSBackupComponents instance 해제하기 전에 반환을 기다려야 합니다.
예를 들어 기록기가 백업 작업을 거부한 경우 요청자는 IVssBackupComponents::AbortBackup을 사용하여 다른 모든 기록기에 백업 작업이 완료되지 않을 것임을 알려야 합니다.
PrepareForBackup을 호출하기 전에 또는 PrepareForBackup 호출이 실패하는 경우 요청자는 Abort 이벤트를 생성할 필요 없이 IVSSBackupComponents 인터페이스의 현재 instance 해제할 수 있습니다.
예를 들어 IVSSBackupComponents의 현재 instance IVssBackupComponents::GatherWriterMetadata를 호출하고 Identify 이벤트를 생성하여 정보를 가져오는 데만 사용되는 경우 정보가 반환되면 IVSSBackupComponents의 instance 간단히 해제할 수 있습니다.
요청자는 IVssBackupComponents::DoSnapshotSet을 호출할 때 많은 이벤트(PrepareForSnapshot, Freeze, Thaw 및 PostSnapshot)를 생성합니다. Freeze 및 Thaw 이벤트를 처리하는 동안 작성기가 실패할 수 있으며 자체적으로 중단 이벤트를 생성할 수 있습니다. PrepareForSnapshot 및 PostSnapshot 이벤트를 처리하지 못하면 중단 이벤트가 생성되지 않습니다.
IVssBackupComponents::D oSnapshotSet이 실패를 표시할 때 중단 이벤트가 생성되었는지를 요청자가 항상 알 수 있는 것은 아닙니다. 따라서 IVssBackupComponents::D oSnapshotSet의 상태 문제가 여전히 IVssBackupComponents::AbortBackup을 호출해야 하므로 백업 작업을 종료해야 하는 요청자입니다.
요청자가 IVssBackupComponents::AbortBackup을 호출한 경우 IVSSBackupComponents의 instance 릴리스하기 전에 IVssBackupComponents::BackupComplete를 호출할 필요가 없습니다.
기록기 처리 및 중단 이벤트 만들기
앞에서 설명한 것처럼 기록기는 요청자로부터 중단 이벤트를 받거나 공급자가 자체적으로 트리거할 수 있습니다. 또한 기록기는 특정 상황에서 여러 중단 이벤트를 수신할 수 있습니다. 작성기 개발자는 이를 염두에 두고 CVssWriter::OnAbort 의 구현을 코딩해야 합니다.
Abort 이벤트를 처리할 때 기록기는 정상 실행 상태로 관리되는 프로세스를 복원하고 오류 처리 및 로깅을 수행해야 합니다.
즉, CVssWriter::OnAbort 의 구현은 Thaw 이벤트 처리기(CVssWriter::OnThaw) 및 PostSnapshot 이벤트 처리기(CVssWriter::OnPostSnapshot)와 동일한 작업의 전부는 아니지만 많은 작업을 수행해야 할 수 있으며 이러한 처리기는 CVssWriter::OnAbort 내에서 호출할 수 있습니다.