Anwendungskonfigurationseinstellungen (AppFabric 1.1-Cache)

Die Cacheclienteinstellungen der Anwendung können für die Cachefunktionen von Microsoft AppFabric 1.1 für Windows Server programmgesteuert, mithilfe einer Anwendungskonfigurationsdatei oder mit beiden Verfahren an verschiedenen Stellen der Anwendung konfiguriert werden. Weitere Informationen zu jeder dieser Konfigurationsmethoden und deren Auswahl finden Sie unter Konfigurieren eines Cacheclients.

Unabhängig vom gewählten Vorgehen wird jeweils die gleiche Cacheclienteinstellung konfiguriert. In den Tabellen in diesem Thema werden die für den Cacheclient verfügbaren Einstellungen und ihre Verwendung in der XML-basierten Konfigurationsdatei sowie zur programmgesteuerten Konfiguration im Code dargestellt.

Weitere Informationen zum Verwenden dieser Einstellungen in der Anwendung finden Sie in den unter XML-basierte Clientkonfiguration behandelten Beispielen.

Cacheclienteinstellung

Für jeden Cacheclient sind Konfigurationseinstellungen definiert. Wenn Sie eine Konfigurationsdatei verwenden, sind diese in mindestens einem Abschnitt dataCachClient enthalten, der in einen Abschnitt dataCacheClients eingebettet werden kann. Beispiele:

  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
    <dataCacheClient name="compressedCache" isCommpressionEnabled="true">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

Im vorhergehenden Beispiel sind in der Konfigurationsdatei zwei Cacheclients definiert: default und compressedCache. Sie müssen den Cacheclientnamen nicht angeben, um auf den Standardcache zuzugreifen. Beispiele:

DataCacheFactory factory = new DataCacheFactory();

Wenn Sie einen anderen benannten Abschnitt dataCacheClient angeben möchten, müssen Sie den Abschnittsnamen des Cacheclients mithilfe des Kontruktors DataCacheFactoryConfiguration angeben.

DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration("compressedCache");
DataCacheFactory factory = new DataCacheFactory(factoryConfig)

Wenn Sie keine Anwendungskonfigurationsdatei verwenden, können Sie alle Einstellungen programmgesteuert mithilfe der Eigenschaften der Klasse DataCacheFactoryConfiguration definieren.

Einstellung Speicherort der XML-Konfiguration Speicherort der Codekonfiguration

Komprimierung (boolescher Wert)

Das Attribut isCompressionEnabled des Elements dataCacheClient. Der Standardwert ist false.

Die IsCompressionEnabled-Eigenschaft der DataCacheFactoryConfiguration-Klasse.

Clienttimeout (Millisekunden)

Das Attribut requestTimeout des Elements dataCacheClient. Die Angabe von Werten unterhalb von 10000 (10 Sekunden) wird nicht empfohlen. Der Standardwert ist 15000.

Die RequestTimeout-Eigenschaft der DataCacheFactoryConfiguration-Klasse.

Timeout für geöffneten Kanal (Millisekunden)

Das Attribut channelOpenTimeout des Elements dataCacheClient. Dieser Wert kann auf 0 festgelegt werden, wenn alle Netzwerkprobleme sofort behandelt werden sollen. Weitere Informationen finden Sie unter Konfigurieren von Cacheclienttimeouts. Der Standardwert ist 3000.

Die ChannelOpenTimeout-Eigenschaft der DataCacheFactoryConfiguration-Klasse.

Maximale Anzahl der Verbindungen zum Server

Das Attribut maxConnectionsToServer des Elements dataCacheClient. Der Standardwert ist 1.

Die MaxConnectionsToServer-Eigenschaft der DataCacheFactoryConfiguration-Klasse.

Cachehosteinstellungen

Für jeden Cacheclient muss mindestens ein Cachehost im Cluster angegeben werden. Geben Sie führende Hosts an, da die als führende Hosts designierten Cachehosts die Verwaltung des Clusters unterstützen. Im Anfang stellen führende Hosts die ersten im Cluster installierten Cachehosts dar. Weitere Informationen zu führenden Hosts finden Sie unter Diagramm der physischen Windows Server AppFabric-Cachearchitektur (AppFabric 1.1-Cache).

In der Anwendungskonfigurationsdatei werden die Einstellungen für jeden Cache in einem Hostelement angegeben, einem untergeordneten Element des hosts-Elements. Programmgesteuert wird jeder Host im Klassenkonstruktor der DataCacheServerEndpoint-Klasse definiert. Nach der Instanziierung werden dann diese DataCacheServerEndPoint-Objekte an die Servers-Eigenschaft der DataCacheServerEndpoint-Klasse übergeben.

Einstellung Speicherort der XML-Konfiguration Speicherort der Codekonfiguration

Cacheservername

Das Attribut name des Elements host.

Die HostName-Eigenschaft der DataCacheServerEndpoint-Klasse.

Cacheportnummer

Das Attribut cachePort des Elements host.

Die CachePort-Eigenschaft der DataCacheServerEndpoint-Klasse.

Lokale Cacheeinstellungen

Mit den lokalen Cacheeinstellungen wird angegeben, ob der lokale Cache aktiviert werden soll, in welcher Weise die Invalidierung lokal zwischengespeicherer Objekte erfolgt, welcher Objekttimeout angewendet wird, und ob Cachebenachrichtigungen zum Invalidieren lokal zwischengespeicherter Objekte verwendet werden sollen.

In der Anwendungskonfigurationsdatei werden Einstellungen des lokalen Caches im localCache-Element, einem untergeordneten Element des dataCacheClient-Elements, definiert. Programmgesteuert wird der lokale Cache mit einer Instanz der DataCacheFactoryConfiguration-Klasse konfiguriert, die dem Konstruktor des DataCacheFactory-Klassenkonstruktors übergeben wird. Weitere Informationen zum lokalen Cache finden Sie unter Cacheclients und lokaler Cache (AppFabric 1.1-Cache)

Einstellung Speicherort der XML-Konfiguration Speicherort der Codekonfiguration

Lokaler Cache aktiviert

Das Attribut isEnabled des Elements localCache. Die Werte können true oder false sein. Das localCache-Element kann auch nicht vorhanden sein, um seine Deaktivierung anzuzeigen.

Die IsEnabled-Eigenschaft der DataCacheLocalCacheProperties-Klasse. Dieses Objekt wird dann der Eigenschaft LocalCacheProperties der DataCacheFactoryConfiguration-Klasse zugewiesen.

Invalidierungsmethode des lokalen Caches

Das Attribut sync des Elements localCache. Verwenden Sie den TimeoutBased-Wert, um anzugeben, dass ein Timeoutwert verwendet werden soll. Verwenden Sie NotificationBased, um anzugeben, dass Cachebenachrichtigungen ebenfalls verwendet werden sollen.

Die InvalidationPolicy-Eigenschaft der DataCacheLocalCacheProperties-Klasse. Mögliche Werte: NotificationBased und TimeoutBased.

Timeout des lokalen Caches (Sekunden)

Das Attribut ttlValue des Elements localCache.

Die DefaultTimeout-Eigenschaft der DataCacheLocalCacheProperties-Klasse.

Abrufintervall für spezifische Cachebenachrichtigungen (Sekunden)

(optional) Wird vom pollInterval-Attribut des clientNotification-Elements angegeben. Das Element clientNotification ist ein untergeordnetes Element des Elements dataCacheClient, kein untergeordnetes Element des Elements localCache. Ohne Angabe wird ein Wert von 300 Sekunden verwendet.

Die PollInterval-Eigenschaft der DataCacheNotificationProperties-Klasse. Dieses Objekt wird dann der Eigenschaft NotificationProperties der DataCacheFactoryConfiguration-Klasse zugewiesen.

Maximale Anzahl lokal zwischengespeicherter Objekte

(optional) Wird vom objectCount-Attribut des localCache-Elements angegeben. Löst den Beginn der Entfernung aus dem lokalen Cache aus. Bei der Entfernung wird dann versucht, die 20 Prozent der lokal zwischengespeicherten Objekte zu entfernen, deren Verwendung am längsten zurück liegt. Ohne Angabe wird der Standardwert von 10,000 Objekten verwendet.

Die ObjectCount-Eigenschaft der DataCacheLocalCacheProperties-Klasse.

Hinweis

Zum Erzielen einer optimalen Leistung sollte der lokale Cache nur für Objekte aktiviert werden, die sich nicht häufig ändern. Die Verwendung des lokalen Caches für häufig wechselnde Daten kann die Gefahr erhöhen, dass der Client mit veralteten Objekten arbeitet. Zwar können Sie den ttlValue herabsetzen und den lokalen Cache durch einen Prozess häufiger aktualisieren lassen, die höhere Auslastung des Clusters kann dann jedoch den Vorteil des lokalen Caches zunichte machen. In derartigen Fällen sich häufig ändernder Daten sollte der lokale Cache deaktiviert werden, und die Daten sollten direkt aus dem Cluster abgerufen werden.

Benachrichtigungseinstellungen

In der Anwendungskonfigurationsdatei werden Benachrichtigungseigenschaften im clientNotification-Element, einem untergeordneten Element des dataCacheClient-Elements, definiert. Programmgesteuert werden Benachrichtigungseigenschaften mit einer Instanz der DataCacheFactoryConfiguration-Klasse konfiguriert, die dem Konstruktor des DataCacheFactory-Klassenkonstruktors übergeben wird. Weitere Informationen finden Sie unter Konfigurationsmethoden.

Einstellung Speicherort der XML-Konfiguration Speicherort der Codekonfiguration

Abrufintervall für spezifische Cachebenachrichtigungen (Sekunden)

Wird vom pollInterval-Attribut des clientNotification-Elements angegeben. Ohne Angabe wird ein Wert von 300 Sekunden verwendet.

Die PollInterval-Eigenschaft der DataCacheNotificationProperties-Klasse. Dieses Objekt wird dann der Eigenschaft NotificationProperties der DataCacheFactoryConfiguration-Klasse zugewiesen.

Maximale Warteschlangenlänge

Das Attribut maxQueueLength des Elements clientNotification. Ohne Angabe ist der Standardwert 10000.

Die MaxQueueLength-Eigenschaft der DataCacheNotificationProperties-Klasse.

Sicherheitseinstellungen

In der Anwendungskonfigurationsdatei werden Sicherheitseigenschaften im securityProperties-Element, einem untergeordneten Element des dataCacheClient-Elements, definiert. Programmgesteuert werden Sicherheitseigenschaften mit einer Instanz der DataCacheFactoryConfiguration-Klasse konfiguriert, die dem Konstruktor des DataCacheFactory-Klassenkonstruktors übergeben wird. Weitere Informationen finden Sie unter Konfigurationsmethoden.

Einstellung Speicherort der XML-Konfiguration Speicherort der Codekonfiguration

Mode

Das Attribut mode des Elements securityProperties. Mögliche Werte: Transport und None. Der Standardwert ist Transport.

Die SecurityMode-Eigenschaft der DataCacheSecurity-Klasse. Mögliche Werte: None und Transport. Das DataCacheSecurity-Objekt wird dann der SecurityProperties-Eigenschaft der DataCacheFactoryConfiguration-Klasse zugewiesen.

Schutzstufe

Das Attribut protectionLevel des Elements securityProperties. Mögliche Werte: None, Sign und EncryptAndSign. Der Standardwert ist EncryptAndSign.

Die ProtectionLevel-Eigenschaft der DataCacheSecurity-Klasse. Mögliche Werte: None, Sign und EncryptAndSign.

Transporteinstellungen

In der Anwendungskonfigurationsdatei werden Transporteigenschaften im transportProperties-Element, einem untergeordneten Element des dataCacheClient-Elements, definiert. Programmgesteuert werden Transporteigenschaften mit einer Instanz der DataCacheFactoryConfiguration-Klasse konfiguriert, die dem Konstruktor des DataCacheFactory-Klassenkonstruktors übergeben wird. Weitere Informationen finden Sie unter Konfigurationsmethoden.

Einstellung Speicherort der XML-Konfiguration Speicherort der Codekonfiguration

Größe des Verbindungspuffers (Bytes)

Das Attribut connectionBufferSize des Elements transportProperties.

Die ConnectionBufferSize-Eigenschaft der DataCacheTransportProperties-Klasse. Dieses Objekt wird dann der Eigenschaft TransportProperties der DataCacheFactoryConfiguration-Klasse zugewiesen.

Maximale Pufferpoolgröße (Bytes)

Das Attribut maxBufferPoolSize des Elements transportProperties.

Die MaxBufferPoolSize-Eigenschaft der DataCacheTransportProperties-Klasse.

Maximale Puffergröße (Bytes)

Das Attribut maxBufferSize des Elements transportProperties.

Die MaxBufferSize-Eigenschaft der DataCacheTransportProperties-Klasse.

Maximale Ausgabeverzögerung (Millisekunden)

Das Attribut maxOutputDelay des Elements transportProperties.

Die MaxOutputDelay-Eigenschaft der DataCacheTransportProperties-Klasse.

Timeout für die Kanalinitialisierung (Millisekunden)

Das Attribut channelInitializationTimeout des Elements transportProperties.

Die ChannelInitializationTimeout-Eigenschaft der DataCacheTransportProperties-Klasse.

Empfangstimeout (Millisekunden)

Das Attribut receiveTimeout des Elements transportProperties.

Die ReceiveTimeout-Eigenschaft der DataCacheTransportProperties-Klasse.

Anwendungskonfigurations-Beispieldatei

Damit die AppFabric-Assemblys die XML-Elemente in der Anwendungskonfigurationsdatei lesen, muss das Element configSections als erstes Element in der Datei unter dem Tag configuration aufgeführt sein. Innerhalb des configSections-Elements muss ein section-Element aufgenommen werden, das dem dataCacheClient-Element zugeordnet ist.

Das folgende Beispiel zeigt eine Anwendungskonfigurationsdatei, die viele der in diesem Thema erörterten Cacheclient-Konfigurationsoptionen verwendet. Es muss unbedingt beachtet werden, dass für Verbindungen zum Cluster nur das hosts-Element im dataCacheClient erforderlich ist. Die anderen untergeordneten Elemente weisen sämtlich Standardwerte auf.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          allowLocation="true"
          allowDefinition="Everywhere"/>
</configSections>

   <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
      <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
      <clientNotification pollInterval="300" maxQueueLength="10000"/>
      <hosts>
         <host name="CacheServer1" cachePort="22233"/>
         <host name="CacheServer2" cachePort="22233"/>
      </hosts>
      <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
      <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                           maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                           receiveTimeout="600000"/>
   </dataCacheClient>
</configuration>

Siehe auch

Konzepte

Konfigurieren eines Cacheclients
Clusterkonfigurationseinstellungen
Problembehandlung von AppFabric
Verwenden von Windows PowerShell zum Verwalten von AppFabric 1.1-Cachefunktionen
AppFabric-Cachekonzepte (AppFabric 1.1-Cache)
Entwickeln eines Cacheclients

  2012-03-05