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