Skip to main content

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 

 

ComputerCache Schema.png

 

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 

       

      IIS Einstellung 2.png

       

      IIS Einstellung.png