Propriedades de Configuração do Cache JPA

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:

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:

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