Compartilhar via


O Cache de Atributos ADSI

O modelo de objeto ADSI fornece um cache de atributos do lado do cliente para cada objeto ADSI. O cache de atributos é comparável a uma tabela na memória que contém os nomes e valores da maioria dos atributos de objeto que foram baixados. Alguns atributos, como atributos operacionais, não são armazenados em cache. O ADSI usa o cache de propriedades para aprimorar o desempenho da manipulação de atributos e adicionar capacidade de transação para operações de leitura e gravação de atributo. Essa funcionalidade é essencial para clientes escritos em idiomas que não têm nenhum mecanismo de envio em lote nativo para definir atributos, como o sistema de desenvolvimento do Microsoft Visual Basic. Sem o cache de propriedades ADSI, esses clientes teriam que acessar o servidor sempre que um atributo fosse lido ou gravado.

Quando um objeto é criado ou associado pela primeira vez, o cache de propriedade do objeto está vazio. Quando o método IADs::GetInfo é chamado, o ADSI carrega os atributos solicitados para o objeto do serviço de diretório subjacente para o cache local. Quando um valor de atributo específico é lido e o cache está vazio, ADSI faz uma chamada implícita para o método IADs::GetInfo. Quando o cache é preenchido, todas as operações de leitura de atributo funcionam apenas no conteúdo do cache.

Quando um valor de atributo é gravado, o novo valor é armazenado no cache local até que o método IADs::SetInfo seja chamado. Quando o método IADs::SetInfo é chamado, os atributos no cache são confirmados no serviço de diretório subjacente. Depois que o método IADs::SetInfo for chamado, os valores permanecerão no cache até serem atualizados explicitamente com outra chamada para o método IADs::GetInfo.

Importante

O método IADs::GetInfo deve ser usado com cuidado, pois esse método sempre substituirá os valores de atributo no cache do serviço de diretório subjacente, mesmo que o valor armazenado em cache tenha sido alterado. Ou seja, ele substituirá valores de atributo que foram alterados no cache, mas não confirmados no serviço de diretório subjacente com uma chamada para o método IADs::SetInfo.

 

A figura a seguir mostra os diferentes métodos usados para operar no cache.

de cache de atributo adsi