Condividi tramite


Cache degli attributi ADSI

Il modello a oggetti ADSI fornisce una cache degli attributi lato client per ogni oggetto ADSI. La cache degli attributi è paragonabile a una tabella in memoria che contiene i nomi e i valori della maggior parte degli attributi oggetto scaricati. Alcuni attributi, ad esempio gli attributi operativi, non vengono memorizzati nella cache. ADSI usa la memorizzazione nella cache delle proprietà per migliorare le prestazioni della manipolazione degli attributi e aggiungere funzionalità di transazione per le operazioni di lettura e scrittura degli attributi. Questa funzionalità è fondamentale per i client scritti in linguaggi che non dispongono di un meccanismo nativo di invio in batch per l'impostazione di attributi, ad esempio il sistema di sviluppo di Microsoft Visual Basic. Senza la cache delle proprietà ADSI, tali client dovranno accedere al server ogni volta che un attributo viene letto o scritto.

Quando un oggetto viene creato o associato per la prima volta, la cache delle proprietà per l'oggetto è vuota. Quando viene chiamato il metodo IADs::GetInfo , ADSI carica gli attributi richiesti per l'oggetto dal servizio directory sottostante nella cache locale. Quando viene letto un valore di attributo specifico e la cache è vuota, ADSI effettua una chiamata implicita al metodo IADs::GetInfo . Quando la cache viene riempita, tutte le operazioni di lettura degli attributi funzionano solo sul contenuto della cache.

Quando viene scritto un valore di attributo, il nuovo valore viene archiviato nella cache locale fino a quando non viene chiamato il metodo IADs::SetInfo . Quando viene chiamato il metodo IADs::SetInfo , viene eseguito il commit degli attributi nella cache nel servizio directory sottostante. Dopo aver chiamato il metodo IADs::SetInfo , i valori rimangono nella cache fino a quando non viene aggiornato in modo esplicito con un'altra chiamata al metodo IADs::GetInfo .

Importante

Il metodo IADs::GetInfo deve essere usato con attenzione perché questo metodo sovrascriverà sempre i valori dell'attributo nella cache dal servizio directory sottostante, anche se il valore memorizzato nella cache è stato modificato. Ciò significa che sovrascriverà i valori degli attributi modificati nella cache, ma non verrà eseguito il commit nel servizio directory sottostante con una chiamata al metodo IADs::SetInfo .

 

Nella figura seguente vengono illustrati i diversi metodi usati per operare nella cache.

adsi attribute cache