Configurações de aplicativo (Cache do AppFabric 1.1)

Com os recursos de cache do Microsoft AppFabric 1.1 para Windows Server, você pode configurar as configurações de cliente de cache do aplicativo de forma programática, usando um arquivo de configuração de aplicativo ou os dois métodos em locais diferentes do aplicativo. Para obter mais informações sobre cada um desses métodos de configuração e como selecionar cada um, consulte Como configurar um cliente de cache.

Independentemente do método adotado, você está definindo a mesma configuração de cliente de cache. As tabelas neste tópico apresentam as configurações disponíveis ao cliente de cache e mostram como elas estão configuradas no arquivo de configuração de aplicativo baseado em XML e de forma programática, usando o código.

Para obter mais informações sobre como usar essas configurações em seu aplicativo, consulte os exemplos abordados em Configuração de cliente baseado em XML.

Configuração do cliente de cache

Cada cliente de cache tem definições de configuração definidas. Caso esteja usando um arquivo de configuração, eles serão incluídos em uma ou mais seções de dataCachClient, que podem ser incorporadas a uma seção de dataCacheClients. Por exemplo:

  <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>

No exemplo anterior, há dois clientes de cache definidos no arquivo de configuração: default e compressedCache. Para acessar o cache padrão, não é necessário especificar o nome do cliente de cache. Por exemplo:

DataCacheFactory factory = new DataCacheFactory();

Para especificar qualquer outra seção de dataCacheClient nomeada, é necessário especificar o nome da seção do cliente de cache usando o construtor DataCacheFactoryConfiguration.

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

Se não estiver usando um arquivo de configuração de aplicativo, você poderá definir programaticamente todas as configurações com propriedades da classe DataCacheFactoryConfiguration.

Configuração Local da configuração XML Local da configuração do código

Compactação (booleano)

O atributo isCompressionEnabled no elemento dataCacheClient. O valor padrão é false.

A propriedade IsCompressionEnabled da classe DataCacheFactoryConfiguration.

Tempo limite do cliente (milissegundos)

O atributo requestTimeout no elemento dataCacheClient. Não é recomendável especificar um valor menor que 10000 (10 segundos). O valor padrão é 15000.

A propriedade RequestTimeout da classe DataCacheFactoryConfiguration.

Tempo limite de abertura de canal (milissegundos)

O atributo channelOpenTimeout no elemento dataCacheClient. Esse valor pode ser definido como 0 para imediatamente tratar de quaisquer problemas de rede. Para obter mais informações, consulte Configurando tempos limites do cliente de cache. O valor padrão é 3000.

A propriedade ChannelOpenTimeout da classe DataCacheFactoryConfigurationc.

Número máximo de conexões com o servidor

O atributo maxConnectionsToServer no elemento dataCacheClient. O valor padrão é 1.

A propriedade MaxConnectionsToServer da classe DataCacheFactoryConfiguration.

Configurações de host do cache

Para cada cliente de cache, você deve especificar um ou mais hosts de cache no cluster. Especifique os hosts principais, pois os hosts de cache designados como hosts principais ajudam a gerenciar o cluster. Inicialmente, os hosts principais são os primeiros hosts de cache instalados no cluster. Para obter mais informações sobre hosts principais, consulte Diagrama de arquitetura física de cache do AppFabric (Cache do AppFabric 1.1).

No arquivo de configuração do aplicativo, as configurações de cada host de cache são especificadas em um elemento host, um filho do elemento hosts. De forma programática, cada host é definido no construtor da classe DataCacheServerEndpoint. Depois que forem instanciados, os objetos DataCacheServerEndPoint são passados para a propriedade Servers da classe DataCacheServerEndpoint.

Configuração Local da configuração XML Local da configuração do código

Nome do servidor de cache

O atributo name do elemento host.

A propriedade HostName da classe DataCacheServerEndpoint.

Número de porta do cache

O atributo cachePort do elemento host.

A propriedade CachePort da classe DataCacheServerEndpoint.

Configurações de cache local

As configurações de cache local especificam se o cache local deve estar habilitado, a maneira que os objetos armazenados em cache local devem ser invalidados, o tempo limite do objeto e se as notificações de cache devem ser usadas ou não para validar os objetos armazenados em cache local.

No arquivo de configuração de aplicativo, as configurações de cache local são definidas no elemento localCache, um filho do elemento dataCacheClient. Programaticamente, o cache local é configurado com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações sobre o cache local, consulte Clientes de cache e cache local (Cache do AppFabric v1.1).

Configuração Local da configuração XML Local da configuração do código

Cache local habilitado

O atributo isEnabled no elemento localCache. Os valores podem ser true ou false. O elemento localCache também pode estar ausente, indicando que ele está desabilitado.

A propriedade IsEnabled da classe DataCacheLocalCacheProperties. Em seguida, essa propriedade é atribuída à propriedade LocalCacheProperties da classe DataCacheFactoryConfiguration.

Método de invalidação de cache local

O atributo sync no elemento localCache. Use o valor TimeoutBased para indicar que um valor de tempo limite deve ser usado. Use NotificationBased para indicar que as notificações de cache também devem ser usadas.

A propriedade InvalidationPolicy da classe DataCacheLocalCacheProperties. Os valores possíveis são NotificationBased e TimeoutBased.

Tempo limite de cache local (segundos)

O atributo ttlValue no elemento localCache.

A propriedade DefaultTimeout da classe DataCacheLocalCacheProperties.

Intervalo de sondagem (segundos) das notificações de cache específicas

(opcional) Especificado pelo atributo pollInterval do elemento clientNotification. O elemento clientNotification é um filho do elemento dataCacheClient e não um filho do elemento localCache. Se não for especificado, será usado um valor igual a 300 segundos.

A propriedade PollInterval da classe DataCacheNotificationProperties. Em seguida, essa propriedade é atribuída à propriedade NotificationProperties da classe DataCacheFactoryConfiguration.

Contagem máxima de objetos armazenados em cache local

(opcional) Especificado pelo atributo objectCount no elemento localCache. Dispara quando a remoção no cache local deve iniciar; ele tentará remover 20% dos objetos armazenados em cache local menos usados recentemente. Se não for especificado, será usado o valor padrão de 10.000 objetos.

A propriedade ObjectCount da classe DataCacheLocalCacheProperties.

Observação

Para obter melhor desempenho, apenas habilite o cache local para objetos que não são alterados com frequência. O uso de cache local para dados alterados com frequência pode aumentar a chance do cliente trabalhar com objetos obsoletos. Embora você possa reduzir o ttlValue e fazer com que um processo atualize o cache local com mais frequência, o aumento da carga no cluster poderá superar os benefícios de ter o cache local. Nesses casos de alteração frequente de dados, a melhor opção é desabilitar o cache local e extrair dados diretamente do cluster.

Configurações de Notificação

No arquivo de configuração de aplicativo, as propriedades de notificação são definidas no elemento clientNotification, um filho do elemento dataCacheClient. Programaticamente, as propriedades de notificação são configuradas com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações, consulte Métodos de configuração.

Configuração Local da configuração XML Local da configuração do código

Intervalo de sondagem (segundos) das notificações de cache específicas

Especificado pelo atributo pollInterval do elemento clientNotification. Se não for especificado, será usado um valor igual a 300 segundos.

A propriedade PollInterval da classe DataCacheNotificationProperties. Em seguida, essa propriedade é atribuída à propriedade NotificationProperties da classe DataCacheFactoryConfiguration.

Comprimento máximo da fila

O atributo maxQueueLength do elemento clientNotification. Se não for especificado, o valor padrão será 10000.

A propriedade MaxQueueLength da classe DataCacheNotificationProperties.

Configurações de segurança

No arquivo de configuração de aplicativo, as propriedades de segurança são definidas no elemento securityProperties, um filho do elemento dataCacheClient. Programaticamente, as propriedades de segurança são configuradas com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações, consulte Métodos de configuração.

Configuração Local da configuração XML Local da configuração do código

Modo

O atributo mode do elemento securityProperties. Os valores possíveis são Transport e None. O valor padrão é Transport.

A propriedade SecurityMode da classe DataCacheSecurity. Os valores possíveis são None e Transport. O objeto DataCacheSecurity é então atribuído à propriedade SecurityProperties da classe DataCacheFactoryConfiguration.

Nível de proteção

O atributo protectionLevel do elemento securityProperties. Os valores possíveis são None, Sign e EncryptAndSign. O valor padrão é EncryptAndSign.

A propriedade ProtectionLevel da classe DataCacheSecurity. Os valores possíveis são None, Sign e EncryptAndSign.

Configurações de Transporte

No arquivo de configuração de aplicativo, as propriedades de transporte são definidas no elemento transportProperties, um filho do elemento dataCacheClient. Programaticamente, as propriedades de transporte são configuradas com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações, consulte Métodos de configuração.

Configuração Local da configuração XML Local da configuração do código

Tamanho do buffer de conexão (bytes)

O atributo connectionBufferSize do elemento transportProperties.

A propriedade ConnectionBufferSize da classe DataCacheTransportProperties. Em seguida, essa propriedade é atribuída à propriedade TransportProperties da classe DataCacheFactoryConfiguration.

Tamanho máximo do pool de buffers (bytes)

O atributo maxBufferPoolSize do elemento transportProperties.

A propriedade MaxBufferPoolSize da classe DataCacheTransportProperties.

Tamanho máximo do buffer (bytes)

O atributo maxBufferSize do elemento transportProperties.

A propriedade MaxBufferSize da classe DataCacheTransportProperties.

Espera máxima de saída (milissegundos)

O atributo maxOutputDelay do elemento transportProperties.

A propriedade MaxOutputDelay da classe DataCacheTransportProperties.

Tempo limite de inicialização do canal (milissegundos)

O atributo channelInitializationTimeout do elemento transportProperties.

A propriedade ChannelInitializationTimeout da classe DataCacheTransportProperties.

Tempo limite de recebimento (milissegundos)

O atributo receiveTimeout do elemento transportProperties.

A propriedade ReceiveTimeout da classe DataCacheTransportProperties.

Exemplo de arquivo de configuração de aplicativo

Para que os assemblies do AppFabric leiam os elementos XML no arquivo de configuração de aplicativo, você deve incluir o elemento configSections como o primeiro elemento no arquivo abaixo da marca configuration. No elemento configSections, você deve incluir um elemento section associado ao elemento dataCacheClient.

O exemplo a seguir mostra um arquivo de configuração de aplicativo que usa muitas das opções de configuração do cliente de cache discutidas nesse tópico. É importante observar que somente o elemento hosts é necessário no dataCacheClient para conectar ao cluster. Os outros elementos filhos têm valores padrão.

<?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>

Consulte também

Conceitos

Como configurar um cliente de cache
Definições de configuração de cluster
Solucionando problemas de cache do AppFabric
Usando o Windows PowerShell para gerenciar os recursos de cache do AppFabric 1.1
Conceitos de cache do AppFabric (Cache do AppFabric 1.1)
Desenvolvendo um cliente de cache

  2012-03-05