Configurando o cache dinâmico (DynaCache) para usar o provedor de cache dinâmico do WebSphere eXtreme Scale

O mecanismo de cache dinâmico é o provedor de cache padrão para as APIs e para a estrutura de cache dinâmico. Entretanto, o cache dinâmico permite que o WebSphere eXtreme Scale aja como seu mecanismo principal de armazenamento em cache. É possível configurar o cache dinâmico para usar o WebSphere eXtreme Scale como seu provedor de cache ao invés do mecanismo de cache dinâmico padrão. Configurar o cache dinâmico para usar o WebSphere eXtreme Scale permite que você monitore com mais eficiência o suporte transacional, escalabilidade melhorada, alta disponibilidade e outros recursos do WebSphere eXtreme Scale sem alterar seu código de armazenamento em cache do cache dinâmico existente.

Antes de Iniciar

  • Leia o tópico Introdução: Cache Dinâmico para obter uma visão geral da funcionalidade do WebSphere eXtreme Scale.
  • Determine se usar o WebSphere eXtreme Scale é benéfico para os aplicativos em execução em seus servidores de aplicativos.

    Os recursos do WebSphere eXtreme Scale aumentam significativamente os recursos distribuídos da função do cache dinâmico além do que é oferecido pelo mecanismo de cache dinâmico padrão e pelo serviço de replicação de dados. Com o WebSphere eXtreme Scale, é possível criar caches que sejam verdadeiramente distribuídos entre múltiplos servidores, ao invés de apenas replicar e sincronizar caches entre os servidores. Os caches do WebSphere eXtreme Scale são transacionais e altamente disponível, assegurando que cada servidor veja o mesmo conteúdo de cache dinâmico. O WebSphere eXtreme Scale também oferece uma qualidade de serviço mais alta para a replicação de cache que aquela que é fornecida pelo Data Replication Service (DRS).

    Entretanto, essas vantagens não significam que o provedor de cache dinâmico do eXtreme Scale é a opção correta para cada aplicativo. Use as árvores de decisão e a matriz de comparação de recursos fornecida no tópico Configurando o provedor de cache dinâmico para o WebSphere eXtreme Scale no Centro de Informações do WebSphere eXtreme Scale Versão 7.0 para ter uma visão geral desse provedor de cache.

Se você decidir que é benéfico para seus aplicativos, use as informações fornecidas na seção "Configurando o Provedor de Cache Dinâmico para o WebSphere eXtreme Scale" da Visão Geral do Produto WebSphere eXtreme Scale Versão 7.0 para determinar a topologia apropriada do WebSphere eXtreme Scale para sua implementação de armazenamento em cache.

Se você usar o WebSphere eXtreme Scale, ao invés do mecanismo de cache dinâmico padrão, o cache dinâmico terá as seguintes limitações:
  • Sem suporte de cache de disco. As seguintes propriedades customizadas não funcionam:
    • com.ibm.ws.cache.CacheConfig.enableDiskOffload
    • com.ibm.ws.cache.CacheConfig.diskOffloadLocation
    • com.ibm.ws.cache.CacheConfig.flushToDiskOnStop
    • com.ibm.ws.cache.CacheConfig.htodCleanupFrequency
    • com.ibm.ws.cache.CacheConfig.htodDelayOffload
    • com.ibm.ws.cache.CacheConfig.htodDelayOffloadEntriesLimit
    • com.ibm.ws.cache.CacheConfig.htodDelayOffloadDepIdBuckets
    • com.ibm.ws.cache.CacheConfig.htodDelayOffloadTemplateBuckets
    • com.ibm.ws.cache.CacheConfig.diskCachePerformanceLevel
    • com.ibm.ws.cache.CacheConfig.diskCacheEvictionPolicy
    • com.ibm.ws.cache.CacheConfig.diskCacheHighThreshold
    • com.ibm.ws.cache.CacheConfig.diskCacheLowThreshold
    • com.ibm.ws.cache.CacheConfig.diskCacheSize
    • com.ibm.ws.cache.CacheConfig.diskCacheSizeInGB
    • com.ibm.ws.cache.CacheConfig.diskCacheEntrySizeInMB
    • com.ibm.ws.cache.CacheConfig.explicitBufferLimitOnStop
    • com.ibm.ws.cache.CacheConfig.lruToDiskTriggerTime
    • com.ibm.ws.cache.CacheConfig.lruToDiskTriggerPercent
    Evitar Problemas Evitar Problemas: A função de transferência de disco deve ser desativada antes de configurar o extremeScale. Para desativar a função de transferência de disco:
    1. No console administrativo, clique em Servidores>Tipos de Servidores>Servidores de Aplicativos WebSphere> server_name >Serviços de Contêiner>Serviço de Cache Dinâmico.
    2. Localize a propriedade Ativar a Transferência de Disco e desmarque essa propriedade se ela estiver selecionada.
    Se você esquecer de desativar a transferência de disco antes de configurar o extremeScale como o provedor de cache, use os comandos wsadmin a seguir para desativar a função de transferência de disco:
    1. Emita o comando a seguir para localizar o objeto de configuração do servidor.
      wsadmin>$AdminConfig list DynamicCache
      (cells/optimusprimeCell01/nodes/optimusprimeNode01/servers/server1|serve
      r.xml#dynamic_cache_name)
    2. Emita o comando AdminConfig modify a seguir para configurar a transferência de disco como false:
      wsadmin>$AdminConfig modify
      (cells/optimusprimeCell01/nodes/optimusprimeNode01/servers/server1|serve
      r.xml#dynamic_cache_name) {{enableDiskOffload false}} 
    3. Emita o comando a seguir para salvar essa mudança na configuração:
      wsadmin>$AdminConfig save
    gotcha
  • Sem replicação DRS (suporte push ou push-pull). As seguintes propriedades customizadas não funcionarão:
    • com.ibm.ws.cache.CacheConfig.enableReplicationAcks
    • com.ibm.ws.cache.CacheConfig.enableCacheReplication
    • com.ibm.ws.cache.CacheConfig.replicationDomain
    • com.ibm.ws.cache.CacheConfig.cacheEntryWindow
    • com.ibm.ws.cache.CacheConfig.cachePercentageWindow
    • com.ibm.ws.cache.CacheConfig.cacheInvalidateEntryWindow
    • com.ibm.ws.cache.CacheConfig.cacheInvalidatePercentWindow
    • com.ibm.ws.cache.CacheConfig.filterTimeOutInvalidation
    • com.ibm.ws.cache.CacheConfig.filterLRUInvalidation
  • O recurso alias API não é suportado para o cache Object.
  • O listener de eventos é suportado. Ao disparar qualquer evento, o WebSphere eXtreme Scale sempre configura sourceOfInvalidation para REMOTE.
  • Desativação de ID de dependência, com.ibm.ws.cache.CacheConfig.disableDependencyId, e modelos, com.ibm.ws.cache.CacheConfig.disableTemplatesSupport, não são suportados.
  • Sem suporte de PMI.
  • Os seguintes contadores CacheStatistic são suportados:
    • CacheHits
    • CacheLruRemoves
    • CacheMisses
    • CacheRemoves
    • ExplictInvalidationsFromMemory
    • MemoryCacheEntries
    • TimeoutInvalidationsFromMemory
  • NioMap - skipMemoryAndWriteToDisk não funcionará porque o cache de disco não é suportado. Além, disso, o DistributedNioMapObject.release() não é chamado para liberar byteBuffer para o gerenciamento de buffer NIO.

Conclua as seguintes ações para ativar o provedor de cache dinâmico do WebSphere eXtreme Scale.

Procedimento

  1. Instale o cliente WebSphere eXtreme Scale ou o cliente WebSphere eXtreme Scale e os pacotes do servidor em seu servidor de aplicativos para o servidor remoto e as outras topologias respectivamente.
    Evitar Problemas Evitar Problemas: Somente a instalação do cliente WebSphere eXtreme Scale e a topologia remota são suportadas.gotcha
  2. Designe o provedor de cache dinâmico do WebSphere eXtreme Scale como seu provedor de cache.

    Cada instância de cache pode ser individualmente configurada para usar o WebSphere eXtreme Scale. O mecanismo de cache dinâmico é o provedor de cache padrão para uma instância de cache. As instâncias de cache configuradas com o WebSphere eXtreme Scale podem coexistir com as instâncias de cache configuradas com o DRS.

    Conclua uma das seguintes ações para designar o provedor de cache dinâmico do WebSphere eXtreme Scale como seu provedor de cache:

    1. Use o console administrativo para designar o provedor de cache dinâmico do WebSphere eXtreme Scale como seu provedor de cache.
      1. No console administrativo, clique em Servidores > Tipos de Servidores > Servidores de Aplicativos WebSphere > server_name.
      2. Em Serviços do Contêiner, clique em Serviço de cache dinâmico server_name e, em seguida, no campo Provedor de cache, selecione Provedor de cache dinâmico do WebSphere eXtreme Scale .
      3. Clique em OK.
    2. Inclua a propriedade cacheProviderName no arquivo cacheinstances.properties que está no pacote configurável de um aplicativo corporativo e configure a propriedade para com.ibm.ws.objectgrid.dynacache.CacheProviderImpl.

      Por exemplo, para cache.instance.26, você incluiria a linha a seguir no arquivo cacheinstances.properties:

      cache.instance.26.cacheProviderName = com.ibm.ws.objectgrid.dynacache.CacheProviderImpl
    3. Inclua as seguintes APIs do Factory APIs no código para um aplicativo corporativo:
      Properties p = new Properties();
                      ==>p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
                      DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
                      DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);
  3. Configure a definição de replicação para a instância do cache.

    Com o provedor de cache dinâmico do WebSphere eXtreme Scale, é possível ter as instâncias de cache local e as instâncias de cache replicado.

    Se você for usar somente as instâncias de cache local, vá para a última etapa e salve suas mudanças de configuração. Em um cache local, o contêiner do WebSphere eXtreme Scale está localizado junto ao JVM; isto é, o contêiner do WebSphere eXtreme Scale e WebSphere Application Server compartilham o mesmo heap JVM.

    Se você for usar caches replicados, conclua uma das seguintes ações, dependendo de como você criou a instância do cache:

    1. Na página Java Virtual Machine > Propriedades Customizadas no console administrativo, clique em Novo novamente. Insira com.ibm.ws.cache.CacheConfig.enableCacheReplication no campo Nome e true no campo Valor e, em seguida, clique em OK.
    2. Inclua a propriedade enableCacheReplication no arquivo cacheinstances.properties que está no pacote configurável em um aplicativo corporativo e defina a propriedade como true.
      Por exemplo, para cache.instance.26, você incluiria a linha a seguir no arquivo cacheinstances.properties:
      cache.instance.26.enableCacheReplication = true
    3. Inclua as seguintes APIs do Factory APIs no código para um aplicativo corporativo:
      Properties p = new Properties();
                      p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
                      ==>p.put(CacheConfig.ENABLE_CACHE_REPLICATION, "true");
                      DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
                      DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);
  4. Configure a topologia de replicação do WebSphere eXtreme Scale.

    O único parâmetro de configuração requerido para o provedor de cache dinâmico do WebSphere eXtreme Scale é o parâmetro de topologia do cache.

    1. Na página Java Virtual Machine > Propriedades Customizadas no console administrativo, clique em Novo novamente. Insira com.ibm.websphere.xs.dynacache.topology no campo Nome e um dos seguintes valores no campo Valor:
      • integrado
      • embedded_partitioned
      • Remoto
      Evitar Problemas Evitar Problemas: Se você especificar embedded_partitioned, você também deverá incluir a propriedade customizada com.ibm.websphere.xs.dynacache.num_initial_containers em suas configurações do JVM e configurar essa propriedade para um inteiro que seja igual ou ligeiramente menor que o número total de instâncias do servidor que estão acessando essa instância de cache distribuído.gotcha
    2. Inclua a propriedade com.ibm.websphere.xs.dynacache.topology ao arquivo cacheinstances.properties empacotado em um aplicativo corporativo e configure a propriedade para integrada, embedded_partitioned ou remota.
      Por exemplo, para cache.instance.26, você incluiria a linha a seguir no arquivo cacheinstances.properties:
      cache.instance.26.com.ibm.websphere.xs.dynacache.topology = embedded
      Evitar Problemas Evitar Problemas: Se você especificar embedded_partitioned, você também deve incluir a propriedade com.ibm.websphere.xs.dynacache.num_initial_containers ao cacheinstances.propertiesfile e configurar essa propriedade para um inteiro que seja igual ou ligeiramente menor que o número total de instâncias do servidor que estão acessando essa instância de cache distribuído.gotcha

      Por exemplo, se um serviço de cache dinâmico for compartilhado entre membros da grade, então a variável deve ser configurada para o número de membros da grade.

    3. Inclua as seguintes APIs do Factory APIs no código para um aplicativo corporativo:
      Properties p = new Properties();
                      p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
                      p.put(CacheConfig.ENABLE_CACHE_REPLICATION, "true");
                      ==>p.put("com.ibm.websphere.xs.dynacache.topology", "embedded");
                      ==>p.put("com.ibm.websphere.xs.dynacache.num_initial_containers", "3");
                      DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
                      DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);

    Consulte o tópico Configurando o provedor de cache dinâmico para o WebSphere eXtreme Scale no Centro de Informações do WebSphere eXtreme Scale Versão 7 para obter mais informações sobre as configurações embedded, embedded_partitioned e remote.

  5. Configure a grade de serviço do catálogo eXtreme Scale.

    Ao executar uma grade de serviço do catálogo, você deve configurar a propriedade customizada catalog.services.cluster para os terminais de serviço do catálogo.

    Consulte o tópico Iniciando o processo de serviço de catálogo em um ambiente do WebSphere Application Server no Centro de Informações do WebSphere eXtreme Scale Versão 7, para obter uma descrição de como iniciar o processo de serviço de catálogo em um ambiente do WebSphere Application Server.

    1. No console administrativo, clique em Administração do sistema > Célula > Propriedades customizadas > Novo.
    2. Insira catalog.services.cluster no campo Nome e o valor apropriado server_name:host_name:client_port:peer_port:listener_port no campo Valor.
      • server_name é o nome completo do processo do WebSphere, como o nome da célula, nome do nó ou nome do servidor ou o servidor que hospeda o serviço de catálogo. Exemplo: cellA\node1\nodeagent
      • host_name é o nome do servidor de hospedagem.
      • client_port é a porta usada para comunicação da grade do catálogo de peer.
      • peer_port é a porta usada para comunicação da grade do catálogo de peer.
      • listener_port é a porta listener. Esta porta deve corresponder ao valor BOOTSTRAP_ADDRESS definido na configuração do servidor.
      A seguir está um exemplo de um valor válido:
      cellA\node1\nodeagent:host.local.domain:6600:6601:2809,cellA\node2\
      nodeagent:host.foreign.domain:6600:6601:2809
    3. Clique em OK.
  6. Clique em Salvar para salvar todas as mudanças de sua configuração.
  7. Reinicie todos os servidores de aplicativos que você configurou para usar o WebSphere eXtreme Scale.
  8. Configurar os objetos de chave customizados.

    Quando estiver usando objetos customizados como chaves, os objetos devem implementar a interface Serializável e Externalizável. Se estiver usando objetos customizados com as topologias integradas ou particionadas integradas, você deve colocar os objetos no caminho de bibliotecas compartilhadas, da mesma maneira que você faria se estivesse usando o provedor de cache dinâmico padrão. Para obter informações adicionais, consulte o tópico Usando as interfaces DistributedMap e DistributedObjectCache para o cache dinâmico.

    Se estiver usando a topologia remota, você deve colocar os objetos chave customizados no CLASSPATH para os contêineres independentes do WebSphere eXtreme Scale. Consulte as etapas para iniciar um processo de contêiner no Guia de Administração do WebSphere eXtreme Scale Versão 7.0 para obter mais informações. Essa publicação está disponível na página de bibliotecas do WebSphere eXtreme Scale

  9. Configure os serviços de contêiner do eXtreme Scale.

    Os dados em cache são armazenados nos contêineres do WebSphere eXtreme Scale. Esses contêineres podem executar dentro ou fora de um processo WebSphere Application Server. O provedor eXtreme Scale cria automaticamente os contêineres dentro de um processo WebSphere Application Server quando você está usando topologias integradas ou particionadas integradas para uma instância do cache. Não é necessária mais nenhuma configuração para essas topologias.

    Quando usar a topologia remota, você deve inicializar os contêineres independentes do eXtreme Scale antes de iniciar as instâncias do WebSphere Application Server que acessam a instância de cache. O Guia de Administração do WebSphere eXtreme Scale Versão 7.0 documenta as etapas que você precisa concluir para iniciar os contêineres independentes.

    Evitar Problemas Evitar Problemas: Certifique-se de que todos os contêineres para um cache dinâmico específico apontem para os mesmos terminais de serviço do catálogo. gotcha

    Os arquivos de configuração dynacache-remoteobjectgrid. xml e dynacache-remote-definition.xml para os contêineres do provedor eXtreme Scale Dynamic Cache independente estão localizados no diretório install_root/customLibraries/ ObjectGrid/dynacache/etc se o WebSphere eXtreme Scale estiver instalado na parte superior do WebSphere Application Server, ou no diretório install_root/ObjectGrid/dynacache/etc se você estiver usando uma versão independente do WebSphere eXtreme Scale. Faça cópias desses arquivos para editar e usar ao ativar os contêineres independentes para o provedor de cache dinâmico eXtreme Scale. O valor especificado para o parâmetro numIntitialContainers no arquivo dynacache-remote-deployment.xml deve ser baseado no número de processos do contêiner que estão sendo executados.

    O exemplo a seguir ilustra uma entrada da linha de comandos baseada em UNIX que ativa um contêiner independente para o provedor de cache dinâmico do WebSphere eXtreme Scale:
    startOgServer.sh container1 -objectGridFile ../dynacache/etc/dynacache-remoteobjectgrid.
    xml -deploymentPolicyFile ../dynacache/etc/dynacache-remotedeployment.
    xml -catalogServiceEndpoints MyServer1.company.com:2809
    Evitar Problemas Evitar Problemas: O conjunto de processos de contêineres precisa ter memória livre suficiente para atender a todas as instâncias de cache dinâmico configuradas para usar a topologia remota. Qualquer processo WebSphere Application Server que compartilhar valores iguais ou equivalentes para catalog.services.cluster deve usar o mesmo conjunto de contêineres independentes. O número de contêineres e o número de máquinas nas quais eles residem devem ser redimensionados adequadamente. Consulte o tópico Planejamento de Capacidade e Alta Disponibilidade na Visão Geral do Produto WebSphere eXtreme Scale Versão 7.0 para obter detalhes adicionais. Esta publicação está disponível na página da biblioteca do WebSphere eXtreme Scale.gotcha
  10. Verifique se o provedor de cache dinâmico do WebSphere eXtreme Scale está configurado corretamente.
    Se o cache dinâmico do WebSphere eXtreme Scale estiver configurado corretamente, o log do sistema conterá várias mensagens semelhantes às seguintes mensagens:
    DYNA1001I: WebSphere Dynamic cache instance named "{0}" initialized successfully using cache provider "{1}".
    DYNA1071I: The cache provider \"{0}\" is being used.
    Se a configuração e inicialização da instância de cache com o WebSphere eXtreme Scale falharem, o tempo de execução do cache dinâmico será revertido para o provedor de cache do cache dinâmico padrão e você deve ver mensagens semelhantes à seguinte mensagem no log do sistema.
    DYNA1066E: Unable to initialize the cache provider \"{0}\". 
    The Dynamic cache will be used to create the cache instance \"{1}\" 
    instead of the configured cache provider. 

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdyn_extremescale
Nome do arquivo: tdyn_extremescale.html