Computer Cache
Beschreibung
Es gibt eine neue Version, in der die Liste aller Computer (entsprechend Konfiguration Default Query in UserPermissions.xml) dauerhaft im Speicher gehalten wird und alle konfigurierbaren n Sekunden (web.config: ComputerDataTTL) aktualisiert wird.
Bei Abruf der Computerliste werden dadurch nur noch die Berechtigungen des Benutzers abgefragt und eine gefilterte Version der Gesamtliste zurückgegeben. Dementsprechend gibt es keine SQL-Abfrage mehr beim Start des SCCM Manager Clients (und die damit verbundene Wartezeit), sondern es wird sofort eine maximal n Sekunden alte Liste zurückgegeben.
Durch das letzte Update des Client Creator Plugins können Benutzer trotzdem mit neu angelegten Clients arbeiten, selbst wenn die Computerliste noch nicht aktualisiert wurde.
Die neue Funktionsweise ist konfigurierbar und kann über die web.config aktiviert werden EnableComputerDataCache.
Außerdem ist ein neues Setting (web.config: EnableSqlQueryLogging) zum Ein/Ausschalten des SQL-Query-Loggings hinzugekommen. Im Normalbetrieb kann so das Zuspammen des Logfiles verringert werden.
Konfiguration
Die Konfiguration der UserPermissions.xml ist im Caching-Modus etwas anders:
-
Die Grundlage bildet immer das Default Query
-
Das Collection Query muss nur die Spalten [CollectionID] und [ResourceID] zurückgeben
-
Unter Computer Search Queries werden keine SQL-Queries mehr angegeben, sondern nur noch Filterbedingungen
Beispiel:
Das Default Query bleibt unverändert. Das Collection Query gibt die Gesamtmenge aller möglichen Collection – ResourceID Zuordnungen zurück . {COLLECTION_VIEW} wird programmatisch ersetzt durch die gefundenen CollectionIDs z.B. DE1002B4, DE1002B8 (siehe <ComputerSearchCollections>)
<Setting Name="CollectionSearchQuery">
SELECT
CollectionID, ResourceID
FROM
v_FullCollectionMembership
WHERE
ResourceType = 5
AND
CollectionID IN ({COLLECTION_VIEW})
</Setting>
<ComputerSearchCollections>
<Collection ID="DE1002B4" RequiredGroupMembership="DEVMSC\G-A-TEST01-Admins" />
<Collection ID="DE1002B8" RequiredGroupMembership="DEVSMC\G-A-TEST02-Admins" />
</ComputerSearchCollections>
Unter ComputerSearchQueries werden keine ganzen SQL-Queries mehr angegeben, sondern nur noch Bedingungen zur Filterung der Computer vom Default Query:
<ComputerSearchQueries>
<Query RequiredGroupMembership="DEVSMC\G-A-%-Admins">Organizational_unit LIKE '%/{0}/%'</Query>
<Query RequiredGroupMembership="DEVSMC\G-B-%-Koordinatoren">Organizational_unit LIKE '%/{0}/%'</Query>
</ComputerSearchQueries>
Prinzipiell reicht es zu wissen, dass unter <ComputerSearchQueries> nur noch Filterbedingungen angegeben werden müssen. Das Collection Query kann wie o.g. genutzt werden.
Neue web.config-Einträge
-
EnableComputerDataCache
-
EnableSqlQueryLogging
-
ComputerDataTTL