Habilitar cache local do Windows Server AppFabric

O Windows Server AppFabric oferece a opção de configurar o cliente de cache através de um programa ou com um arquivo de configuração de aplicativo. Os procedimentos a seguir descrevem como ativar por programação a cache local do seu cliente de cache. Para obter informações sobre como fazer isso com seu arquivo de configuração de aplicativo, consulte Habilitar cache local (XML) do Windows Server AppFabric.

As etapas a seguir descrevem o processo necessário para ativar por programação a cache local do seu cliente de cache:

  1. Crie uma instância da classe DataCacheLocalCacheProperties. Configure a cache local, transmitindo os valores apropriados aos parâmetros do construtor. São eles objectCount, defaultTimeout e invalidationPolicy.

  2. Transmita o objeto DataCacheLocalCacheProperties ao construtor de um novo objeto DataCacheFactory.

  3. Use o objeto DataCacheFactory para chamar o método GetCache para criar um cliente de cache que use a cache local.

Aviso

Estes procedimentos pressupõem que você já tenha preparado seu ambiente de desenvolvimento e definido as referências aos conjuntos de cache do AppFabric. Para obter mais informações, consulte Preparando o ambiente de desenvolvimento do cliente de cache (Cache do Windows Server AppFabric).

Para criar um cliente de cache com a cache local habilitada

  1. Crie uma matriz de objetos DataCacheServerEndpoint para especificar os hosts de cache para o cliente.

  2. Crie uma instância da classe DataCacheLocalCacheProperties. Configure a cache local, transmitindo os valores apropriados aos parâmetros do construtor.

    1. Use o parâmetro objectCount para especificar o número máximo de objetos na cache local.

    2. Use o parâmetro defaultTimeout para especificar um objeto System.TimeSpan que determina o tempo pelo qual um objeto permanecerá na cache local antes de ser invalidado.

    3. Use o parâmetro invalidationPolicy para especificar como os objetos armazenados na cache local serão invalidados. Especifique DataCacheLocalCacheInvalidationPolicy.TimeoutBased para indicar que somente o valor de limite de tempo deve ser usado. Especifique DataCacheLocalCacheInvalidationPolicy.NotificationBased para indicar que as notificações de cache serão utilizado além dos limites de tempo. Para obter mais informações, consulte Clientes de cache e cache local (Cache do Windows Server AppFabric).

  3. Se você selecionou DataCacheLocalCacheInvalidationPolicy.NotificationBased como política de invalidação, também terá a opção de controlar o intervalo de consulta para a freqüência de comunicação do cliente de cache com o cluster de cache para notificações de atualização de objetos armazenados em cache localmente. Para isso, crie uma instância da classe DataCacheNotificationProperties. Configure os parâmetros de notificação, transmitindo os valores apropriados aos parâmetros do construtor.

    1. Use o parâmetro PollInterval para especificar um objeto System.Timespan como intervalo da freqüência em que o cliente de cache verificará se há notificações de cache no cluster de cache. Perceba que a cache local não é necessária para as notificações de cache. Para obter mais informações, consulte Notificações de cache (cache do Windows Server AppFabric).

    2. O parâmetro MaxQueueLength controla o comprimento da fila de notificações, mas não afeta especificamente a cache local. O valor padrão é 16384.

  4. Crie uma instância da classe DataCacheFactoryConfiguration.

  5. Configure seus hosts de cache atribuindo a matriz de host de cache da primeira etapa à propriedade Servers do objeto DataCacheFactoryConfiguration.

  6. Configure a cache local, atribuindo o objeto DataCacheLocalCacheProperties criado na segunda etapa à propriedade LocalCacheProperties do objeto DataCacheFactoryConfiguration.

  7. Se necessário, configure as propriedades de notificação, atribuindo o objeto DataCacheNotificationProperties criado na terceira etapa à propriedade NotificationProperties do objeto DataCacheFactoryConfiguration.

  8. Transmita o objeto DataCacheFactoryConfiguration ao construtor da classeDataCacheFactory.

  9. Use o método GetCache para obter uma classe DataCache com base nas configurações do objeto DataCacheFactoryConfiguration.

Observação

Se você selecionou DataCacheLocalCacheInvalidationPolicy.NotificationBased como política local de invalidação da cache, a cache de destino deve ser configurada com as notificações habilitadas. Para obter mais informações, consulte Usando o Windows PowerShell para gerenciar os recursos de cache do Windows Server AppFabric.

Exemplo

Este exemplo mostra a configuração de um cliente de cache por programação, cuja cache local está habilitada. Este cliente está configurado para usar uma cache chamada NamedCache1 e apontar para um servidor de cache cujo nome é CacheServer2. Para usar o exemplo em seu próprio aplicativo, substitua as propriedades do servidor neste exemplo pelas propriedades dos seus servidores de cache. Adicione mais objetos DataCacheServerEndPoint à matriz de servidores para cada um dos outros hosts de cache no cluster.

Especificar os hosts de cache que foram designados como hosts principais. Os hosts principais são, geralmente, os primeiros servidores de cache instalados no cluster. Para obter mais informações sobre hosts principais, consulte Diagrama de arquitetura física de cache do Windows Server AppFabric. Você pode determinar quais hosts serão hosts principais, utilizando a ferramenta de administração Windows PowerShell. Para obter mais informações sobre o Windows PowerShell, consulte Usando o Windows PowerShell para gerenciar os recursos de cache do Windows Server AppFabric. Primeiro, a matriz de servidores é criada. Este exemplo configura um host de cache cujo nome é CacheServer2.

' Declare array for cache host(s).
Dim servers(0) As DataCacheServerEndpoint
servers(0) = New DataCacheServerEndpoint("CacheServer2", 22233)
// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1];
servers[0] = new DataCacheServerEndpoint("CacheServer2", 22233);

Em seguida, crie um objeto DataCacheLocalCacheProperties. Neste exemplo, a cache local é criada com um número de objetos de 10000 e um limite de tempo de 30 segundos.

' Set the local cache properties. In this example, it
' is timeout-based with a timeout of 30 seconds.
Dim localCacheConfig As DataCacheLocalCacheProperties
Dim localTimeout As TimeSpan = New TimeSpan(0, 0, 30)

localCacheConfig = New DataCacheLocalCacheProperties(10000, _
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
// Set the local cache properties. In this example, it
// is timeout-based with a timeout of 30 seconds.
DataCacheLocalCacheProperties localCacheConfig;
TimeSpan localTimeout = new TimeSpan(0, 0, 30);

localCacheConfig = new DataCacheLocalCacheProperties(10000, 
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);

Em seguida, crie um objeto DataCacheFactoryConfiguration. Atribua a matriz servers à propriedade Servers. Atribua a matriz localCacheConfig à propriedade LocalCacheProperties.

' Setup the DataCacheFactory configuration.
Dim factoryConfig As DataCacheFactoryConfiguration
factoryConfig = New DataCacheFactoryConfiguration

factoryConfig.Servers = servers
factoryConfig.LocalCacheProperties = localCacheConfig
// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = 
   new DataCacheFactoryConfiguration();

factoryConfig.Servers = servers;
factoryConfig.LocalCacheProperties = localCacheConfig;

Em seguida, transmita o objeto DataCacheFactoryConfiguration ao construtor de classes DataCacheFactory e instancie o cliente de cache com o método GetCache. Este exemplo cria um cliente de cache para um cache denominado NamedCache1.

' Create a configured DataCacheFactory object.
Dim mycacheFactory As DataCacheFactory
mycacheFactory = New DataCacheFactory(factoryConfig)

' Get a cache client for the cache "NamedCache1".
Dim myDefaultCache As DataCache
myDefaultCache = mycacheFactory.GetCache("NamedCache1")
// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache "NamedCache1".
DataCache myDefaultCache = mycacheFactory.GetCache("NamedCache1");

Observação

Por motivos de desempenho, recomendamos que você reduza o número de objetos DataCacheFactory criados em um aplicativo habilitado para cache. Armazene o objeto DataCacheFactory em uma variável disponível para todas as partes do aplicativo que utilizam clientes de cache.

Consulte também

Conceitos

Introdução a um cliente de cache do Windows Server AppFabric
Alterar o nível de log do cliente de cache (cache do Windows Server AppFabric)
Clientes de cache e cache local (Cache do Windows Server AppFabric)
Conceitos de cache do Windows Server AppFabric
Desenvolvendo um cliente de cache (cache do Windows Server AppFabric)

Outros recursos

Configurando o cliente de cache com XML

  2011-12-05