Propriétés de configuration du cache JPA

WebSphere eXtreme Scale inclut des plug-in de cache de niveau 2 pour les fournisseurs Java Persistence API (JPA) OpenJPA et Hibernate. Pour configurer le plug-in de cache L2, vous devez mettre à jour les propriétés dans le fichier persistence.xml.

Conseil : Le plug-in de cache L2 JPA requiert une application qui utilise les API JPA. Si vous souhaitez utiliser les API WebSphere eXtreme Scale pour accéder à une source de données avec JPA, utilisez le chargeur JPA. Pour plus d'informations, voir Configuration des chargeurs JPA.

Emplacement des propriétés

Vous pouvez définir ces propriétés dans le fichier persistence.xml. La syntaxe pour spécifier les propriétés de ce fichier varie selon que vous utilisez OpenJPA ou Hibernate :

Topologie et propriétés par défaut

Les valeurs de propriétés par défaut suivantes sont utilisées si vous ne spécifiez pas de valeurs dans la configuration :

Propriétés

Vous pouvez configurer des plug-in de cache JPA avec les propriétés suivantes.

ObjectGridName
Indique le nom unique d'ObjectGrid. La valeur par défaut est le nom d'unité de persistance défini. Si le nom de l'unité de persistance n'est pas disponible auprès du fournisseur, un nom généré est utilisé.
ObjectGridType
Indique le type d'ObjectGrid.

Valeurs admises :

EMBEDDED
Type de configuration par défaut et recommandée. Ses valeurs par défaut sont : NumberOfPartitions=1, ReplicaMode=SYNC, ReplicaReadEnabled=true et MaxNumberOfReplicas=47. Utilisez le paramètre ReplicaMode pour définir le mode de réplication et le paramètre MaxNumberOfReplicas pour définir le nombre maximal de fragments réplique. Si un système possède plus de 47 machines virtuelles Java, spécifiez pour MaxNumberOfReplicas une valeur égale au nombre de machines virtuelles Java.
EMBEDDED_PARTITION
Type à utiliser si le système doit mettre en cache une quantité de données importante sur un système réparti. Le nombre de partitions par défaut est 47 avec le mode de réplique NONE. Sur un petit système qui ne possède que quelques machines virtuelles Java, spécifiez pour NumberOfPartitions une valeur égale ou inférieure au nombre de machines virtuelles Java. Vous pouvez spécifier les valeurs ReplicaMode, NumberOfPartitions et ReplicaReadEnabled pour optimiser le système.
REMOTE
Le cache tente de se connecter à un ObjectGrid réparti distant à partir du service de catalogue.
MaxNumberOfReplicas
Indique le nombre maximal de répliques à utiliser pour le cache. Cette valeur s'applique au type EMBEDDED uniquement. Ce nombre doit être égal ou supérieur au nombre de machines virtuelles Java dans un système. La valeur par défaut est 47.

Valeurs valides : Valeurs supérieures ou égales à 1

MaxUsedMemory

Valeurs valides : TRUE ou FALSE

Active l'expulsion des entrées du cache si la mémoire est soumise à des contraintes. La valeur par défaut est TRUE et les données sont expulsées lorsque le seuil d'utilisation des segments de mémoire de la machine virtuelle Java dépasse 70 pourcent. Vous pouvez modifier le seuil d'utilisation des segments de mémoire de la machine virtuelle Java par défaut en définissant la propriété memoryThresholdPercentage dans le fichier objectGridServer.properties et en plaçant ce fichier dans le chemin d'accès aux classes. Pour plus d'informations sur les expulseurs, voir les Plug-in d'expulsion d'objets du cacheinformations sur les expulseurs dans Présentation du produit. Pour plus d'informations sur le fichier de propriétés du serveur, voir Fichier de propriétés du serveur.
NumberOfPartitions

Valeurs valides : Valeurs supérieures ou égales à 1

Indique le nombre de partitions à utiliser pour le cache. Cette propriété s'applique si la valeur d'ObjectGridType est EMBEDDED_PARTITION. La valeur par défaut est 47. Pour le type EMBEDDED, la valeur NumberOfPartitions est toujours 1.
PlacementScope
Indique la granularité d'une instance d'un groupe de mappes.
Valeurs admises :
DOMAIN_SCOPE
(Défaut) Place un fragment primaire pour chaque partition sur un serveur de conteneur dans le domaine de service de catalogue. Les fragments de réplique pour chaque partition sont placés sur les autres serveurs de conteneur dans le domaine de service de catalogue.
CONTAINER_SCOPE
Place un fragment primaire sur chaque serveur de conteneur dans le domaine de service de catalogue
PlacementScopeTopology
Définit la topologie de liaison du serveur de conteneur dans le domaine de service de catalogue. Cette valeur est utilisée uniquement lorsque PlacementScope a une valeur différente de DOMAIN_SCOPE.
Valeurs admises :
HUB
(Défaut) Si la topologie de concentrateur est sélectionnée, une grille de données unique est sélectionnée pour être le concentrateur. Toutes les autres grilles de données se connectent au concentrateur. Cette topologie est assez évolutive, car branches ont une connexion unique. Le concentrateur peut devenir un goulot d'étranglement et un point unique de défaillance temporaire. Le concentrateur est transféré vers un autre serveur de conteneur lorsque il est défaillant. Cette configuration offre l'avantage de pouvoir écrire plus de code que ne le permet un seul point, le concentrateur, pour gérer toutes les collisions.
RING
Si la topologie en anneau est sélectionnée, chaque grille de données est liée à deux autres grilles de données. L'ordre des liaisons n'est pas garantie. Toutefois, chaque conteneur qui démarre est probablement liée au premier conteneur et au dernier conteneur à ajouter à l'anneau. Cette topologie est la plus évolutive, mais il suffit de deux liaisons défaillantes pour qu'une déconnexion temporaire se produise. Si les serveurs de conteneur sont défaillants, des liaisons sont établies parmi les survivants après que l'échec a été détecté.
ReplicaMode

Valeurs valides : SYNC/ASYNC/NONE

Indique la méthode utilisée pour copier le cache vers les fragments réplique. Cette propriété s'applique si la valeur d'ObjectGridType est EMBEDDED ou EMBEDDED_PARTITION. La valeur par défaut est NONE pour le type EMBEDDED_PARTITION et SYNC pour le type EMBEDDED. Si la valeur de ReplicaMode est NONE pour le type de grille d'objets EMBEDDED, le type EMBEDDED utilise la valeur SYNC pour ReplicaMode.
ReplicaReadEnabled

Valeurs valides : TRUE ou FALSE

Si cette propriété est activée, les clients lisent les valeurs à partir des fragments réplique. Cette propriété s'applique au type EMBEDDED_PARTITION. La valeur par défaut est FALSE pour le type EMBEDDED_PARTITION. Le type EMBEDDED affecte toujours à la propriété ReplicaReadEnabled la valeur TRUE.
writeBehind

Pour les fournisseurs Hibernate uniquement : lorsque la mise en cache en écriture différée est activée, les mises à jour sont provisoirement stockées dans une mémoire de données de portée JVM jusqu'à ce que la condition writeBehindInterval ou writeBehindMaxBatchSize soit respectée.

Avertissement : Les autres paramètres de configuration de l'écriture différée sont ignorés sauf si writeBehind est activé.
Important : Utilisez la fonction d'écriture différée avec précaution. Les configurations d'écriture différée allonge la synchronisation des données dans toutes les machines JVM et augmentent le risque de perte de données. Dans un système qui utilise la configuration d'écriture différée avec au moins quatre machines JVM, la mise à jour effectuée sur une machine virtuelle Java correspond à un délai d'environ 15 secondes avant que la mise à jour soit disponible pour les autres machines JVM. Si deux des machines virtuelles Java actualisent la même entrée, la première qui vide la mise à jour perd sa mise à jour.

Valeurs valides : TRUE ou FALSE.

Valeur par défaut : FALSE.

writeBehindInterval

Pour les fournisseurs Hibernate uniquement : spécifie l'intervalle de temps en millisecondes de vidage des mises à jour dans le cache.

Valeurs valides : supérieur ou égal à 1.

Valeur par défaut : 5000 (5 secondes).

writeBehindPoolSize

Pour les fournisseurs Hibernate uniquement : spécifie la taille maximale du pool d'unités d'exécution utilisé pour vider les mises à jour dans le cache.

Valeurs valides : supérieure ou égale à 1.

Valeur par défaut : 5.

writeBehindMaxBatchSize

Pour les fournisseurs Hibernate uniquement : spécifie la taille de lot maximale par cache de région pour le vidage des mises à jour dans le cache. Par exemple, si la taille est 1 000 et que les mises à jour stockées dans le stockage d'écriture différée d'un cache de région dépasse 1 000 entrées, les mises à jour sont vidées dans le cache, même si la condition writeBehindInterval est respectée. Les mises à jour sont vidées dans le cache à peu près dans le délai en secondes spécifié par la valeur writeBehindInterval ou lorsque la taille du stockage d'écriture différée dans chacun des caches de région dépasse 1 000 entrées. Notez que, si la condition writeBehindMaxBatchSize est remplie, seul le cache de région qui remplit cette condition vide ses mises à jour dans le stockage d'écriture différée vers le cache. Un cache de région correspond généralement à une entité ou à une requête.

Valeurs valides : supérieur ou égal à 1.

Valeur par défaut : 1000.