Dela via


ADSI-attributcache

ADSI-objektmodellen tillhandahåller ett attributcachen på klientsidan för varje ADSI-objekt. Attributcachen är jämförbar med en tabell i minnet som innehåller namn och värden för de flesta objektattribut som har laddats ned. Vissa attribut, till exempel driftattribut, cachelagras inte. ADSI använder cachelagring av egenskaper för att förbättra prestanda för attributmanipulering och lägga till transaktionsfunktioner för attributläsnings- och skrivåtgärder. Den här funktionen är viktig för klienter som skrivits på språk som inte har någon intern batchbearbetningsmekanism för att ange attribut, till exempel Microsoft Visual Basic-utvecklingssystem. Utan ADSI-egenskapscache skulle sådana klienter behöva komma åt servern varje gång ett attribut läss eller skrivs.

När ett objekt skapas eller först binds till är egenskapscacheminnet för objektet tomt. När metoden IAD::GetInfo anropas läser ADSI in de begärda attributen för objektet från den underliggande katalogtjänsten till den lokala cachen. När ett specifikt attributvärde läss och cacheminnet är tomt gör ADSI ett implicit anrop till metoden IAD::GetInfo. När cacheminnet är fyllt fungerar alla attributläsningsåtgärder endast på innehållet i cacheminnet.

När ett attributvärde skrivs lagras det nya värdet i den lokala cachen tills metoden IAD::SetInfo anropas. När metoden IAD::SetInfo anropas, checkas attributen i cachen in i den underliggande katalogtjänsten. När metoden IAD::SetInfo anropas finns värdena kvar i cacheminnet tills de uttryckligen uppdateras med ett annat anrop till metoden IAD::GetInfo.

Viktig

Metoden IAD::GetInfo måste användas noggrant eftersom den här metoden alltid skriver över attributvärdena i cacheminnet från den underliggande katalogtjänsten, även om det cachelagrade värdet har ändrats. Det vill säga att den skriver över attributvärden som har ändrats i cacheminnet, men som inte har checkats in till den underliggande katalogtjänsten med ett anrop till metoden IAD::SetInfo.

 

Följande bild visar de olika metoder som används för att arbeta i cacheminnet.

adsi-attributcache