다음을 통해 공유


일괄 처리 쓰기/수정 작업에 대한 빠른 바인딩 옵션

디렉터리 서비스 개체가 바인딩되면 ADSI는 지정된 디렉터리 개체를 나타내는 COM 개체를 만듭니다. 바인딩할 때 ADSI는 일반적으로 objectClass 특성을 검색하므로 ADSI는 해당 개체 클래스에 적합한 COM 인터페이스를 노출할 수 있습니다. 예를 들어 사용자 개체는 모든 개체에 대해 지원되는 기본 ADSI 인터페이스 외에도 IADsUser 인터페이스를 노출합니다. 단일 작업의 경우 성능에 영향을 주지 않아야 합니다. 그러나 느린 연결을 통해 수백 또는 수천 개의 바인딩이 필요한 일괄 처리 작업이 수행되고 이러한 작업이 디렉터리 서비스에 데이터를 쓰는 경우 더 빠른 바인딩을 위해 전체 개체 지원을 교환하는 것이 좋습니다. 이를 빠른 바인딩이라고 하며 ADsOpenObject 또는 IADsOpenDSObject::OpenDSObject가 호출될 때 ADS_FAST_BIND 플래그를 지정하여 수행됩니다.

빠른 바인딩에는 다음과 같은 제한 사항이 있습니다.

  • 바인딩 작업은 ADsOpenObject 함수 또는 IADsOpenDSObject::OpenDSObject 메서드를 사용하여 수행해야 합니다. 바인딩 작업은 두 번이 아닌 한 번 디렉터리 서버로 이동합니다. ADSI는 objectClass 특성을 검색하지 않으므로 개체에 대한 기본 ADSI 인터페이스만 노출합니다.

  • COM 개체에 대해 지원되는 인터페이스는 다음과 같습니다.

  • IADsContainer::GetObject 메서드를 사용하여 자식 개체에 바인딩하는 경우 자식 개체는 부모와 동일한 빠른 바인딩 특성을 가집니다.

  • 바인딩되는 개체의 존재는 바인딩 작업 중에 확인되지 않으므로 개체가 없으면 후속 메서드 호출이 실패합니다. 이 때문에 빠른 바인딩은 존재하는 것으로 알려진 개체에만 사용해야 합니다. 예를 들어 바인딩되는 개체의 고유 이름을 반환하는 쿼리를 수행한 직후에만 사용해야 합니다.

  • ADSI 확장은 클래스 위쪽의 개체에 대해 노출됩니다. 따라서 위에 나열된 기본 ADSI 인터페이스의 확장만 노출됩니다.