Caché de atributos ADSI
El modelo de objetos ADSI proporciona una caché de atributos del lado cliente para cada objeto ADSI. La caché de atributos es comparable a una tabla en memoria que contiene los nombres y valores de la mayoría de los atributos de objeto que se han descargado. Algunos atributos, como los atributos operativos, no se almacenan en caché. ADSI usa el almacenamiento en caché de propiedades para mejorar el rendimiento de la manipulación de atributos y agregar la funcionalidad de transacciones para las operaciones de lectura y escritura de atributos. Esta funcionalidad es fundamental para los clientes escritos en lenguajes que no tienen ningún mecanismo de procesamiento por lotes nativo para establecer atributos, como el sistema de desarrollo de Microsoft Visual Basic. Sin la caché de propiedades ADSI, estos clientes tendrían que acceder al servidor cada vez que se lee o escribe un atributo.
Cuando se crea o se enlaza primero un objeto, la memoria caché de propiedades del objeto está vacía. Cuando se llama al método IADs::GetInfo , ADSI carga los atributos solicitados para el objeto desde el servicio de directorio subyacente en la memoria caché local. Cuando se lee un valor de atributo específico y la memoria caché está vacía, ADSI realiza una llamada implícita al método IADs::GetInfo . Cuando se rellena la memoria caché, todas las operaciones de lectura de atributos solo funcionan en el contenido de la memoria caché.
Cuando se escribe un valor de atributo, el nuevo valor se almacena en la memoria caché local hasta que se llama al método IADs::SetInfo . Cuando se llama al método IADs::SetInfo , los atributos de la memoria caché se confirman en el servicio de directorio subyacente. Después de llamar al método IADs::SetInfo , los valores permanecen en la memoria caché hasta que se actualizan explícitamente con otra llamada al método IADs::GetInfo .
Importante
El método IADs::GetInfo debe usarse cuidadosamente porque este método siempre sobrescribirá los valores de atributo en la memoria caché del servicio de directorio subyacente, incluso si se ha cambiado el valor almacenado en caché. Es decir, sobrescribirá los valores de atributo que se han cambiado en la memoria caché, pero no se confirmarán en el servicio de directorio subyacente con una llamada al método IADs::SetInfo .
En la ilustración siguiente se muestran los distintos métodos usados para operar en la memoria caché.