O WebSphere eXtreme
Scale inclui plug-ins de cache de nível 2 para ambos os provedores, OpenJPA e Hibernate Java Persistence
API (JPA). Para configurar o plug-in de cache L2, você deve atualizar as propriedades no arquivo persistence.xml.
Dica: O plug-in do cache JPA L2 requer um aplicativo que usa as APIs do JPA. Se desejar usar as APIs do
WebSphere eXtreme
Scale para acessar uma origem de dados JPA, use o carregador JPA. Para
obter informações adicionais, consulte
Configurando Utilitários de Carga do JPA.
Propriedades Locais
É possível configurar essas
propriedades no arquivo
persistence.xml. A sintaxe para especificar as propriedades nesse arquivo varia dependendo se você estiver usando OpenJPA ou Hibernate:
- OpenJPA : É possível configurar as propriedades no DataCache ou no QueryCache:
<property name="openjpa.DataCache"
value="<object_grid_datacache_class(<property>=<value>,...)"/>
ou<property name="openjpa.QueryCache"
value="<object_grid_querycache_class(<property>=<value>,...)"/>
- Hibernate:
<property name="objectgrid.configuration" value="<property>=<value>,..." />
Topologia e Propriedades Padrão
Os seguintes valores de propriedade padrão serão usados se não nenhum valor for especificado na configuração:
- ObjectGridName: nome da unidade de persistência
- ObjectGridType: EMBEDDED
- NumberOfPartitions: 1 (não é possível
alterar quando o tipo de ObjectGrid for EMBEDDED)
- ReplicaMode: SYNC
- ReplicaReadEnabled: TRUE (não é possível
alterar quando o tipo de ObjectGrid for EMBEDDED)
- MaxUsedMemory: TRUE
- MaxNumberOfReplicas: 47 (deve ser menor ou igual ao número de Java Virtual Machines em um sistema distribuído)
Propriedades
É possível configurar plug-ins de cache do JPA com as propriedades a seguir.
- ObjectGridName
- Especifica o nome exclusivo do ObjectGrid. O valor padrão é o nome da unidade de persistência definido. Se o nome da unidade de persistência não estiver disponível a partir do provedor
JPA, um nome gerado será usado.
- ObjectGridType
- Especifica o tipo de ObjectGrid.
Valores válidos:
- EMBEDDED
- O tipo de configuração padrão e recomendado. As configurações padrão incluem: NumberOfPartitions=1, ReplicaMode=SYNC, ReplicaReadEnabled=true e MaxNumberOfReplicas=47.
Use o parâmetro ReplicaMode para configurar o modo de replicação e o parâmetro
MaxNumberOfReplicas para configurar o número máximo
de réplicas. Se um sistema tiver mais de 47 Java Virtual Machines, configure o valor MaxNumberOfReplicas para que seja
igual ao número de Java Virtual Machines.
- EMBEDDED_PARTITION
- O tipo a ser usado quando o sistema precisar armazenar em cache uma grande quantidade de dados em um sistema distribuído. O número padrão
de partições é 47 com um modo de réplica de
NONE.
Em um sistema pequeno com apenas
alguns Java Virtual Machines, configure o valor NumberOfPartitions para que seja igual ou menor que o
número de Java Virtual Machines. Você pode especificar os valores ReplicaMode, NumberOfPartitions
e ReplicaReadEnabled para ajustar o sistema.
- REMOTE
- O cache tenta se conectar com um ObjectGrid remoto e distribuído a partir do serviço de catálogo.
- MaxNumberOfReplicas
- Especifica o número máximo de réplicas a serem usadas para o cache.
Esse valor á aplicado apenas
para o tipo EMBEDDED.
Esse número deve ser igual ou
maior que o número de Java Virtual Machines em um sistema. O valor padrão é 47.
Valores válidos: maior ou igual a 1
- MaxUsedMemory
Valores válidos: TRUE ou FALSE
Ativa a
liberação das entradas de cache quando a memória se tornar limitada. O valor padrão
é TRUE e despeja os dados quando o limite de uso do heap da JVM
exceder 70%. É possível modificar a porcentagem do limite de uso do heap
JVM padrão ao configurar a propriedade memoryThresholdPercentage
no arquivo objectGridServer.properties e colocar
esse arquivo no caminho de classe. Para obter mais informações sobre
os evictors, consulte o Plug-ins para Despejar Objetos de Cacheinformações sobre
os evictors no Visão Geral do Produto.
Para obter mais informações sobre o arquivo de propriedades do servidor, consulte Arquivo de Propriedades do Servidor.
- NumberOfPartitions
Valores válidos: maior ou igual a 1
Especifica o número de partições a serem usadas para o cache. Essa propriedade é aplicada quando o valor
ObjectGridType for configurado para EMBEDDED_PARTITION.
O valor padrão é 47. Para o tipo EMBEDDED,
o valor NumberOfPartitions é sempre 1.
- PlacementScope
- Indica a granularidade de uma única instância de um conjunto de mapas.
Valores válidos:- DOMAIN_SCOPE
- (Padrão) Coloca um shard primário para cada partição em um servidor de contêiner dentro do domínio de serviço de catálogo. Os shards de réplica para cada partição são colocados nos outros servidores de contêiner dentro do domínio de serviço de catálogo.
- CONTAINER_SCOPE
- Coloca um shard primário em cada servidor de contêiner no domínio de serviço de catálogo.
- PlacementScopeTopology
- Define a topologia de vinculação dos servidores de contêiner dentro do domínio de serviço de catálogo. Este valor é usado apenas quando o valor PlacementScope estiver definido como algo diferente de DOMAIN_SCOPE.
Valores válidos:- HUB
- (Padrão) Se a topologia hub for selecionada, uma grade de dados
única é selecionada para ser o hub. Todas as outras grades de dados
se conectam ao hub. Essa topologia é muito escalável porque o spokes
possuem uma única conexão. O hub pode se tornar um gargalo e um ponto
de falha único temporário. O hub é relocalizado para outro servidor de
contêiner quando ele falha. A vantagem desta configuração é que um código de
arbitragem mais complexo pode ser gravado, permitindo que um único ponto, o hub, manipule todas as colisões.
- RING
- Se a topologia em anel for selecionada, cada grade de dados será vinculada a
duas outras grades de dados. A ordenação dos links não é garantida.
No entanto, cada
contêiner que é iniciado provavelmente é vinculado ao primeiro e ao último contêiner a ser incluído ao anel. Essa topologia é a mais escalável, porém apenas dois links podem falhar antes de ser temporariamente cortado. Se os servidores de contêiner falharem, os links serão estabelecidos entre os sobreviventes após a falha ser descoberta.
- ReplicaMode
Valores válidos: SYNC/ASYNC/NONE
Especifica o método que é usado para copiar o cache para as réplicas. Essa propriedade é aplicada
ao configurar o valor ObjectGridType para EMBEDDED ou EMBEDDED_PARTITION.
O valor padrão é NONE para o tipo EMBEDDED_PARTITION e
SYNC para o tipo EMBEDDED.
Se o valor ReplicaMode for configurado para NONE para o
ObjectGridType EMBEDDED, o tipo EMBEDDED ainda
usará um ReplicaMode de SYNC.
- ReplicaReadEnabled
Valores válidos: TRUE ou FALSE
Quando ativado,
os clientes leem a partir das réplicas. Essa propriedade é aplicada para o tipo
EMBEDDED_PARTITION.
O valor padrão é FALSE para o tipo EMBEDDED_PARTITION.
O tipo EMBEDDED sempre é configurado para o valor ReplicaReadEnabled para TRUE.
- writeBehind
Apenas para provedores Hibernate: Quando writeBehind é ativado, as atualizações são temporariamente armazenadas em um armazenamento de dados de escopo JVM até a condição writeBehindInterval ou writeBehindMaxBatchSize for atendidas.
Atenção: A menos que writeBehind seja ativada,
as outras definições de configuração write behind são desconsideradas.
Importante: Tome cuidado ao usar a função write behind. As configurações write behind introduzem uma latência mais longa de sincronização de
entre todas as JVMs e aumenta a chance de atualizações serem perdidas. Em um sistema que tiver a configuração write behind ativada com quatro ou mais JVMs, a atualização executada em uma JVM possui um atraso de aproximadamente 15 segundos antes que a atualização fique disponível para outras JVMs. Se qualquer uma das duas JVMs atualizar a mesma entrada, aquela que limpar a atualização perderá primeiro sua atualização.
Valores válidos: TRUE ou FALSE
Valor padrão: FALSE
- writeBehindInterval
Apenas para provedores Hibernate: Especifica o intervalo de tempo em milissegundos para limpar as atualizações no cache.
Valores válidos: maior ou igual a 1
Valor
padrão: 5000 (5 segundos)
- writeBehindPoolSize
Apenas para provedores Hibernate: Especifica o tamanho máximo do conjunto de encadeamentos usado para limpar as atualizações no cache.
Valores válidos: maior ou igual a 1
Valor padrão: 5
- writeBehindMaxBatchSize
Apenas para provedores Hibernate: Especifica o tamanho de lote
máximo por cache de região ao limpar as atualizações no cache. Por exemplo,
se o tamanho for configurado para 1.000 e as atualizações armazenadas no
armazenamento write behind de um cache de região exceder 1.000 entradas,
as atualizações serão limpas no cache, mesmo se a condição writeBehindInterval
especificada não for atendida. As atualizações são limpas no cache em aproximadamente durante o número de segundos especificado pelo valor writeBehindInterval ou sempre que o tamanho do armazenamento write behind de cada cache de região exceder 1000
entradas. Observe, no caso em que a condição writeBehindMaxBatchSize é atendida, que apenas o cache da região que atende a esta condição limpa suas atualizações no armazenamento write behind no cache. Um cache de região geralmente corresponde a uma entidade ou a uma consulta.
Valores válidos: maior ou igual a 1
Valor
padrão: 1000