Freigeben über


Der ADSI-Attributcache

Das ADSI-Objektmodell stellt einen clientseitigen Attributcache für jedes ADSI-Objekt bereit. Der Attributcache ist vergleichbar mit einer Tabelle im Arbeitsspeicher, die die Namen und Werte der meisten Objektattribute enthält, die heruntergeladen wurden. Einige Attribute, z. B. betriebliche Attribute, werden nicht zwischengespeichert. ADSI verwendet das Zwischenspeichern von Eigenschaften, um die Leistung der Attributmanipulation zu verbessern und Transaktionsfunktionen für Attributlese- und Schreibvorgänge hinzuzufügen. Diese Funktion ist für Clients wichtig, die in Sprachen geschrieben wurden, die keinen systemeigenen Batchverarbeitungsmechanismus zum Festlegen von Attributen haben, z. B. das Microsoft Visual Basic-Entwicklungssystem. Ohne den ADSI-Eigenschaftencache müssten solche Clients jedes Mal, wenn ein Attribut gelesen oder geschrieben wird, auf den Server zugreifen.

Wenn ein Objekt erstellt oder zuerst gebunden wird, ist der Eigenschaftencache für das Objekt leer. Wenn die IADs::GetInfo-Methode aufgerufen wird, lädt ADSI die angeforderten Attribute für das Objekt aus dem zugrunde liegenden Verzeichnisdienst in den lokalen Cache. Wenn ein bestimmter Attributwert gelesen wird und der Cache leer ist, führt ADSI einen impliziten Aufruf der IADs::GetInfo-Methode durch. Wenn der Cache gefüllt ist, funktionieren alle Attributlesevorgänge nur für den Inhalt des Caches.

Wenn ein Attributwert geschrieben wird, wird der neue Wert im lokalen Cache gespeichert, bis die IADs::SetInfo Methode aufgerufen wird. Wenn die IADs::SetInfo--Methode aufgerufen wird, werden die Attribute im Cache an den zugrunde liegenden Verzeichnisdienst gebunden. Nachdem die IADs::SetInfo-Methode aufgerufen wurde, verbleiben die Werte im Cache, bis sie explizit mit einem anderen Aufruf der IADs::GetInfo-Methode aktualisiert wurden.

Wichtig

Die IADs::GetInfo Methode muss sorgfältig verwendet werden, da diese Methode die Attributwerte im Cache immer aus dem zugrunde liegenden Verzeichnisdienst überschreibt, auch wenn der zwischengespeicherte Wert geändert wurde. Dies bedeutet, dass Attributwerte überschrieben werden, die im Cache geändert wurden, aber nicht für den zugrunde liegenden Verzeichnisdienst mit einem Aufruf der IADs::SetInfo-Methode übernommen wurden.

 

Die folgende Abbildung zeigt die verschiedenen Methoden, mit denen der Cache ausgeführt werden kann.

adsi-Attributcache