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: 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:
- 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.
- 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:
- 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)
- 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}}
- 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
- 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: Somente a instalação do cliente WebSphere
eXtreme Scale e a topologia remota são suportadas.
gotcha
- 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:
- Use o console administrativo para designar o provedor de cache dinâmico do WebSphere
eXtreme Scale como seu provedor de cache.
- No console administrativo, clique em server_name.
- Em Serviços do Contêiner, clique em server_name e,
em seguida, no campo Provedor de cache, selecione Provedor de cache dinâmico do WebSphere
eXtreme Scale .
- Clique em OK.
- 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
- 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);
- 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:
- 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.
- 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
- 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);
- 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.
- 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: 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
- 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: 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.
- 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.
- 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.
- No console administrativo, clique em .
- 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
- Clique em OK.
- Clique em Salvar para salvar todas as mudanças de sua configuração.
- Reinicie todos os servidores de aplicativos que você configurou para usar o
WebSphere eXtreme Scale.
- 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
- 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: 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: 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
- 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.