다음을 통해 공유


ADSI 특성 캐시

ADSI 개체 모델은 각 ADSI 개체에 대한 클라이언트 쪽 특성 캐시를 제공합니다. 특성 캐시는 다운로드된 대부분의 개체 특성의 이름과 값을 포함하는 메모리의 테이블과 비슷합니다. 운영 특성과 같은 일부 특성은 캐시되지 않습니다. ADSI는 속성 캐싱을 사용하여 특성 조작의 성능을 향상시키고 특성 읽기 및 쓰기 작업에 대한 트랜잭션 기능을 추가합니다. 이 기능은 Microsoft Visual Basic 개발 시스템과 같은 특성을 설정하기 위한 네이티브 일괄 처리 메커니즘이 없는 언어로 작성된 클라이언트에 매우 중요합니다. ADSI 속성 캐시가 없으면 이러한 클라이언트는 특성을 읽거나 쓸 때마다 서버에 액세스해야 합니다.

개체를 만들거나 처음 바인딩하면 개체의 속성 캐시가 비어 있습니다. IADs::GetInfo 메서드가 호출되면 ADSI는 기본 디렉터리 서비스에서 로컬 캐시로 개체에 대해 요청된 특성을 로드합니다. 특정 특성 값을 읽고 캐시가 비어 있으면 ADSI는 IADs::GetInfo 메서드를 암시적으로 호출합니다. 캐시가 채워지면 모든 특성 읽기 작업은 캐시의 콘텐츠에서만 작동합니다.

특성 값이 작성되면 IADs::SetInfo 메서드가 호출될 때까지 새 값이 로컬 캐시에 저장됩니다. IADs::SetInfo 메서드가 호출되면 캐시의 특성이 기본 디렉터리 서비스에 커밋됩니다. IADs::SetInfo 메서드를 호출한 후에는 IADs::GetInfo 메서드에 대한 다른 호출을 사용하여 명시적으로 새로 고칠 때까지 값이 캐시에 유지됩니다.

중요

캐시된 값이 변경된 경우에도 이 메서드는 항상 캐시의 특성 값을 기본 디렉터리 서비스에서 덮어쓰기 때문에 IADs::GetInfo 메서드를 신중하게 사용해야 합니다. 즉, 캐시에서 변경되었지만 IADs::SetInfo 메서드를 호출하여 기본 디렉터리 서비스에 커밋되지 않은 특성 값을 덮어씁니다.

 

다음 그림에서는 캐시에서 작동하는 데 사용되는 다양한 메서드를 보여 줍니다.

adsi 특성 캐시