Konfigurationseigenschaften des JPA-Caches

WebSphere eXtreme Scale enthält Cache-Plug-ins der Stufe 2 für die JPA-Provider OpenJPA und Hibernate. Zum Konfigurieren des L2-Cache-Plug-ins müssen Sie Eigenschaften in der Datei persistence.xml aktualisieren.

Tipp: Das JPA-L2-Cache-Plug-in erfordert eine Anwendung, die die JPA-APIs verwendet. Wenn Sie APIs von WebSphere eXtreme Scale für den Zugriff auf eine JPA-Datenquelle verwenden möchten, verwenden Sie den JPA-Loader. Weitere Informationen finden Sie im Abschnitt JPA-Loader konfigurieren.

Eigenschaftenposition

Sie können diese Eigenschaften in der Datei persistence.xml konfigurieren. Die Syntax für die Angabe der Eigenschaften in dieser Datei ist davon abhängig, ob Sie OpenJPA oder Hibernate verwenden:

Standardtopologie und -eigenschaften

Die folgenden Standardeigenschaftswerte werden verwendet, wenn Sie keine Werte in der Konfiguration angeben:

Eigenschaften

Sie können JPA-Cache-Plug-ins mit den folgenden Eigenschaften konfigurieren.

ObjectGridName
Gibt den eindeutigen ObjectGrid-Namen an. Der Standardwert ist der Name der definierten Persistenzeinheit. Wenn der Name der Persistenzeinheit nicht über den JPA-Provider verfügbar ist, wird ein generierter Name verwendet.
ObjectGridType
Gibt den Typ des ObjectGrids an.

Gültige Werte:

EMBEDDED
Der Standard- und empfohlene Konfigurationstyp. Zu den Standardeinstellungen gehören NumberOfPartitions=1, ReplicaMode=SYNC, ReplicaReadEnabled=true und MaxNumberOfReplicas=47. Verwenden Sie den Parameter ReplicaMode, um den Replikationsmodus festzulegen, und den Parameter MaxNumberOfReplicas, um die maximale Anzahl an Replikaten festzulegen. Wenn ein System mehr als 47 Java Virtual Machines hat, setzen Sie MaxNumberOfReplicas auf die Anzahl der Java Virtual Machines.
EMBEDDED_PARTITION
Der zu verwendende Typ, wenn das System hohe Datenvolumen in einem verteilten System zwischenspeichern muss. Die Standardanzahl an Partitionen ist 47 beim Replikationsmodus NONE. In einem kleinen System, das nur wenige Java Virtual Machines hat, setzen Sie NumberOfPartitions auf einen Wert kleiner-gleich der Anzahl Java Virtual Machines. Sie können Werte für ReplicaMode, NumberOfPartitions und ReplicaReadEnabled angeben, um das System zu optimieren.
REMOTE
Der Cache versucht, über den Katalogservice eine Verbindung zu einem fernen, verteilten ObjectGrid herzustellen.
MaxNumberOfReplicas
Gibt die maximale Anzahl der für den Cache zu verwendenden Replikate an. Dieser Wert gilt nur für den Typ EMBEDDED. Der muss größer-gleich der Anzahl an Java Virtual Machines in einem System sein. Der Standardwert ist 47.

Gültige Werte: Größer-gleich 1

MaxUsedMemory

Gültige Werte: TRUE oder FALSE

Aktiviert das Entfernen von Cacheeinträgen, wenn ein Speicherengpass auftritt. Der Standardwert ist TRUE und sorgt dafür, dass Daten entfernt werden, wenn die Auslastung des JVM-Heapspeichers den Schwellenwert von 70 % überschreitet. Sie können den Prozentsatz für den Schwellwert für die Auslastung des JVM-Heapspeichers ändern, indem Sie die Eigenschaft "memoryThresholdPercentage" in der Datei objectGridServer.properties definieren und diese Datei in den Klassenpfad stellen. Weitere Einzelheiten zu Bereinigungsprogrammen (Evictor) finden Sie in Plug-ins für die Bereinigung von Cacheobjektenden Informationen zu Bereinigungsprogrammen in der Veröffentlichung Produktübersicht. Weitere Informationen zur Servereigenschaftendatei finden Sie im Abschnitt Servereigenschaftendatei.
NumberOfPartitions

Gültige Werte: Größer-gleich 1

Gibt die Anzahl der für den Cache zu verwendenden Partitionen an. Diese Eigenschaft gilt, wenn EMBEDDED_PARTITION als Wert für ObjectGridType angegeben ist. Der Standardwert ist 47. Für den Typ EMBEDDED ist der Wert von NumberOfPartitions immer 1.
PlacementScope
Gibt die Granularität einer einzelnen Instanz eines MapSets an.
Gültige Werte:
DOMAIN_SCOPE
(Standardeinstellung) Verteilt ein primäres Shard für jede Partition an einen Container-Server in der Katalogservicedomäne. Replikat-Shards für jede Partition werden an die anderen Container-Server in der Katalogservicedomäne verteilt.
CONTAINER_SCOPE
Verteilt ein primäres Shard an jeden Container-Server in der Katalogservicedomäne.
PlacementScopeTopology
Definiert die Verbindungstopologie der Container-Server in der Katalogservicedomäne. Dieser Wert wird nur verwendet, wenn der PlacementScope-Wert auf einen anderen Wert als DOMAIN_SCOPE gesetzt ist.
Gültige Werte:
HUB
(Standardeinstellung) Wenn die Hubtopologie ausgewählt ist, wird ein einziges Datengrid als Hub ausgewählt. Jedes andere Datengrid stellt eine Verbindung zum Hub her. Diese Topologie ist relativ gut skalierbar, weil die Peripheriedomänen eine einzige Verbindung haben. Der Hub kann zu einem Engpass und Single Point of Failure werden. Der Hub wird in einen anderen Container-Server verlagert, wenn er ausfällt. Diese Konfiguration hat den Vorteil, dass komplexerer Arbitrierungscode geschrieben werden kann, der einem einzigen Punkt, dem Hub, ermöglicht, alle Kollisionen zu behandeln.
RING
Wenn Sie die Ringtopologie auswählen, wird jedes Datengrid mit zwei anderen Datengrids verbunden. Die Reihenfolge der Verbindungen ist nicht garantiert. Jeder gestartete Container wird jedoch wahrscheinlich mit dem ersten Container und dem letzten Container verbunden, der dem Ring hinzugefügt wird. Diese Topologie ist die Topologie mit der höchsten Skalierbarkeit, aber es können nur zwei Verbindungen ausfallen, bevor die Topologie vorübergehend stillgelegt wird. Wenn die Container-Server ausfallen, werden Verbindungen zwischen den verbleibenden Servern hergestellt, sobald der Fehler erkannt wurde.
ReplicaMode

Gültige Werte: SYNC/ASYNC/NONE

Gibt die Methode an, die verwendet wird, um den Cache in die Replikate zu kopieren. Diese Eigenschaft gilt, wenn Sie EMBEDDED oder EMBEDDED_PARTITION als Wert für ObjectGridType festgelegt haben. Der Standardwert ist NONE für den Typ EMBEDDED_PARTITION und SYNC für den Typ EMBEDDED. Wenn Sie ReplicaMode auf NONE und EMBEDDED für ObjectGridType angeben, verwendet der Typ EMBEDDED weiterhin den ReplicaMode-Wert SYNC.
ReplicaReadEnabled

Gültige Werte: TRUE oder FALSE

Wenn Sie diese Eigenschaft aktivieren, lesen Clients aus Replikaten. Diese Eigenschaft gilt für den Typ EMBEDDED_PARTITION. Der Standardwert ist FALSE für den Typ EMBEDDED_PARTITION. Beim Typ EMBEDDED wird ReplicaReadEnabled immer auf TRUE gesetzt.
writeBehind

Nur für Hibernate-Provider: Wenn writeBehind aktiviert ist, werden Aktualisierungen vorübergehend in einem JVM-spezifischen Datenspeicher gespeichert, bis die writeBehindInterval- bzw. writeBehindMaxBatchSize-Bedingung erfüllt ist.

Achtung: Wenn writeBehind nicht aktiviert ist, werden weitere Write-behind-Konfigurationseinstellungen ignoriert.
Wichtig: Verwenden Sie die Write-behind-Funktion mit Vorsicht. Write-behind-Konfigurationen führen zu längeren Latenzzeiten bei der Datensynchronisation in allen JVMs und zu einem höheren Risiko von Aktualisierungsverlusten. In einem System, in dem die Write-behind-Konfiguration mit vier oder mehr JVMs aktiviert ist, wird die in einer JVM durchgeführte Aktualisierung mit einer Verzögerung von ca. 15 Sekunden anderen JVMs bereitgestellt. Wenn zwei JVMs denselben Eintrag aktualisieren, verliert die JVM, die die Aktualisierung zuerst mit einer Flush-Operation in den Cache schreibt, ihre Aktualisierung.

Gültige Werte: TRUE und FALSE

Standardwert: FALSE

writeBehindInterval

Nur für Hibernate-Provider: Gibt das Zeitintervall (in Millisekunden) an, in dem Aktualisierungen mit einer Flush-Operation in den Cache geschrieben werden.

Gültige Werte: Größer-gleich 1

Standardwert 5000 (5 Sekunden)

writeBehindPoolSize

Nur für Hibernate-Provider: Gibt die maximale Größe des Thread-Pools an, der für das Schreiben von Aktualisierungen in den Cache verwendet wird.

Gültige Werte: Größer-gleich 1

Standardwert: 5

writeBehindMaxBatchSize

Nur für Hibernate-Provider: Gibt die maximale Stapelgröße pro Regionscache für das Schreiben von Aktualisierungen in den Cache an. Wenn die Größe beispielsweise auf 1000 gesetzt ist und die Anzahl der Aktualisierungen, die im Write-behind-Speicher eines Regionscaches den Wert 1000 überschreitet, werden die Aktualisierungen mit einer Flush-Operation in den Cache geschrieben und zwar auch dann, wenn die angegebene writeBehindInterval-Bedingung nicht erfüllt ist. Aktualisierungen werden entweder alle fünf Sekunden oder bei mehr als 1000 Einträgen im Write-behind-Speicher jedes Regionscaches mit einer Flush-Operation in den Cache geschrieben. Wenn die writeBehindMaxBatchSize-Bedingung erfüllt ist, schreibt nur der Regionscache, der diese Bedingung erfüllt, seine Aktualisierungen im Write-behind-Speicher mit einer Flush-Operation in den Cache. Ein Regionscache entspricht gewöhnlich einer Entität oder einer Abfrage.

Gültige Werte: Größer-gleich 1

Standardwert: 1000