논리 경로 작성기에서 관리하는 구성 요소를 잘 정의된 그룹으로 구성하는 데 사용됩니다.
논리 경로는 경로의 요소를 구분하기 위해 백슬래시 "\"를 사용하여 기존 파일 경로와 구조가 유사합니다. 파일 경로와 달리 논리 경로의 루트는 "\" 대신 NULL입니다.
논리 경로는 NULL-terminated 문자열로 표현되며 경로에 포함할 수 있는 문자에는 다른 제한이 없습니다.
논리 경로의 가장 중요한 사용은 구성 요소 집합정의하는 것입니다. 여기서 명시적 구성 요소 포함은 선택 가능한 구성 요소 중 하나의 백업 또는 복원 작업에 다른 여러 구성 요소(하위 구성 요소)를 포함해야 합니다. 구성 요소 집합의 구성 요소 정의에 대한 논리적 경로는 하위 구성 요소의 논리 경로에 대한 부모이며 다음을 수행합니다.
- 하위 구성 요소는 구성 요소 집합을 정의하는 선택 가능한 구성 요소의 논리 경로를 루트 경로로 공유해야 합니다.
- NULL 루트 경로가 유효합니다.
- 선택 가능한 구성 요소 정의의 이름은 구성 요소 집합의 선택 불가능한 모든 하위 구성 요소에 대한 루트 경로 뒤에 있는 첫 번째 논리 경로 요소여야 합니다.
- 구성 요소 집합은 중첩될 수 있습니다.
- 논리 경로와 구성 요소 이름의 조합은 기록기 클래스모든 인스턴스에서 고유해야 합니다.
논리적 경로 구조가 정의되어 있는 기록기 MyWriter의 가상 예제는 논리적 경로를 보여 줍니다.
구성 요소 이름 | 논리 경로 | 백업에 대해 선택 가능 |
---|---|---|
"실행 파일" | "" | N |
"ConfigFiles" | "실행 파일" | N |
라이선스 정보 | "" | Y |
"보안" | "" | Y |
"UserInfo" | "보안" | N |
"인증서" | "보안" | N |
작가데이터 | "" | Y |
"Set1" | "writerData" | N |
"Jan" | "writerData\Set1" | N |
"12월" | "writerData\Set1" | N |
"Set2" | 작가데이터 | N |
"Jan" | "writerData\Set2" | N |
"12월" | "writerData\Set2" | N |
"쿼리" | "writerData\QueryLogs" | N |
"사용량" | 작가데이터 | Y |
"Jan" | 작가데이터\사용 | N |
"12월" | "writerData\Usage" | N |
"Executables" 및 "ConfigFile" 구성 요소에는 부모-자식 관계가 있지만 둘 다 선택할 수 없습니다. 따라서 구성 요소 집합을 구성하지 않습니다. 기록기 MyWriter가 백업되거나 복원될 때마다, 이 두 구성 요소는 작업에명시적으로 포함되어야 합니다.
"LicenseInfo" 구성 요소는 상위나 하위 항목 없이 선택할 수 있습니다. 요청자의 재량에 따라 백업 또는 복원 작업에 명시적으로 포함되거나 포함되지 않을 수 있습니다.
구성 요소 "보안"은 아래에 구성 요소 집합이 없는 간단한 구성 요소 집합을 정의합니다.
구성 요소 "writerData"는 구성 요소 집합을 정의합니다. 이 구성 요소 집합에는 잘 정의된 여러 논리 경로 계층 구조가 있는 복잡한 구성 요소 컬렉션이 포함되어 있습니다.
하나의 하위 구성 요소인 "사용량"을 선택할 수 있으며 구성 요소 집합을 정의합니다.
여러 구성 요소의 이름은 동일하며 논리 경로로 구분됩니다. 선택할 수 없는 구성 요소 "Dec" 및 "Jan"의 인스턴스는 선택할 수 없는 구성 요소 "Set1" 및 "Set2" 및 선택 가능한 하위 구성 요소 "Usage" 아래에 있습니다.
구성 요소 "writerData"가 백업 또는 복원에 명시적으로 포함된 경우 모든 하위 구성 요소("사용량"으로 정의된 중첩된 구성 요소 집합에 있는 구성 요소)조차도 암시적으로 포함되고암시적으로 포함되는 작업에 포함됩니다.
"writerData"로 정의된 구성 요소 집합이 백업 또는 복원에 명시적으로 포함되지 않은 경우 구성 요소 "Set1", "Set2" 및 "QueryLogs"(및 하위 구성 요소의 인스턴스 "Dec" 및 "Jan")는 백업 또는 복원 작업에 암시적으로 포함되지 않습니다.
그러나 "writerData"가 작업에 포함되지 않더라도 구성 요소 "사용량"은 여전히 선택할 수 있으며 백업 또는 복원 작업에 명시적으로 포함될 수 있습니다. 이 경우 하위 구성 요소 "Jan" 및 "Dec"가 암시적으로 포함됩니다.
주의할 만한 기타 사항:
- 선택 가능한 구성 요소 "LicenseInfo"와 "writerData", 그리고 선택 불가능한 구성 요소 "실행 파일"은 모두 MyWriter의 논리적 경로 계층에서 동일한 수준에 있습니다. 모두 루트 논리 경로인 NULL 또는 ""을 가지고 있습니다.
- 선택 가능한 부모("writerData")가 백업 또는 복원 작업에 명시적으로 포함된 경우 선택 가능한 구성 요소 "사용량"을 백업에 명시적으로 포함해서는 안 됩니다.
- 구성 요소 집합을 정의하는 구성 요소는 단순히 조직의 이유로 존재할 수 있습니다. 예를 들어 "writerData" 또는 "Usage" 구성 요소 또는 둘 다 비어 있을 수 있습니다. 즉, IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles 또는 IVssCreateWriterMetadata::AddDatabaseLogFiles 메서드를 사용하여파일 집합이 추가되지 않았습니다. 구성 요소는 여전히 구성 요소 집합을 정의합니다.