Sie können DataCache- und QueryCache-Implementierungen für OpenJPA konfigurieren.
Vorbereitende Schritte
- Sie müssen die JPA-Cache-Plug-in-Topologie bestimmen, die Sie verwenden möchten.
Weitere Informationen zu den verschiedenen Konfigurationen und den Eigenschaften, die Sie für jede Topologie definieren können,
finden Sie unter JPA-L2-Cache-Plug-in.
- Sie müssen eine Anwendung haben, die die JPA-APIs verwendet. Wenn Sie die APIs von
WebSphere eXtreme Scale für den Datenzugriff mit JPA verwenden möchten, verwenden Sie den
JPA-Loader. Weitere Informationen finden Sie im Abschnitt JPA-Loader konfigurieren.
Vorgehensweise
- Definieren Sie Eigenschaften in der Datei persistence.xml, um das
OpenJPA-Cache-Plug-in zu konfigurieren: Sie können diese Eigenschaften in der DataCache- oder QueryCache-Implementierung definieren.
DataCache- und
QueryCache-Konfigurationen sind voneinander unabhängig.
Sie können beide Konfigurationen aktivieren.
Wenn Sie jedoch beide Konfigurationen aktivieren, verwendet QueryCache
dieselbe Konfiguration wie DataCache, und die Konfiguration von QueryCache wird verworfen.
<property name="openjpa.DataCache"
value="<object_grid_datacache_class(<Eigenschaft>=<Wert>,...)"/>
oder<property name="openjpa.QueryCache"
value="<object_grid_querycache_class(<Eigenschaft>=<Wert>,...)"/>
Anmerkung: Sie können die QueryCache-Konfiguration nur für integrierte und integrierte domäneninerne Topologien aktivieren.
Sie können die Eigenschaft "ObjectGridName", die Eigenschaft "ObjectGridType"
und andere einfache auf die Implementierungsrichtlinie bezogene Eigenschaften in der Eigenschaftenliste der ObjectGrid-Cacheklasse angeben, um
die Cachekonfiguration anzupassen.
Es folgt ein Beispiel:
<property name="openjpa.DataCache"
value="com.ibm.websphere.objectgrid.openjpa.ObjectGridDataCache(
ObjectGridName=BasicTestObjectGrid,ObjectGridType=EMBEDDED,
maxNumberOfReplicas=4)"/>
<property name="openjpa.QueryCache"
value="com.ibm.websphere.objectgrid.openjpa.ObjectGridQueryCache()"/>
<property name="openjpa.RemoteCommitProvider" value="sjvm"/>
Eine Liste der Eigenschaften,
die Sie definieren können, finden Sie unter
Konfigurationseigenschaften des JPA-Caches.
- In der Datei persistence.xml müssen Sie die Eigenschaft
"openjpa.RemoteCommitProvider" auf sjvm setzen.
<property name="openjpa.RemoteCommitProvider" value="sjvm"/>
- Optional: Zu weiteren Anpassung des vom Cache verwendeten Datengrids können Sie weitere Einstellungen mit XML-Dateien angeben.
Für die meisten Szenarien
reicht die Definition von Cacheeigenschaften aus.
Wenn Sie das vom Cache verwendete ObjectGrid weiter anpassen möchten, können Sie
OpenJPA-ObjectGrid-XML-Konfigurationsdateien im Verzeichnis META-INF bereitstellen, wie
z. B. die Datei persistence.xml. Während der Initialisierung
versucht der Cache, diese XML-Dateien zu finden und sie dann zu verarbeiten.
Es gibt drei Typen von ObjectGrid-XML-Konfigurationsdateien für OpenJPA:
- openjpa-objectGrid.xml (ObjectGrid-Konfiguration)
Dateipfad: META-INF/openjpa-objectGrid.xml
Diese Datei wird verwendet, um die ObjectGrid-Konfiguration für die Typen
EMBEDDED und EMBEDDED_PARTITION anzupassen. Für den Typ REMOTE wird diese Datei ignoriert.
Standardmäßig wird jede Entitätsklasse einer eigenen BackingMap-Konfiguration zugeordnet, die denselben Namen
wie die Entitätsklasse in der ObjectGrid-Konfiguration hat.
Die Entitätsklasse "com.mycompany.Employee" wird beispielsweise der BackingMap "com.mycompany.Employee" zugeordnet.
Die BackingMap-Standardkonfiguration hat die Einstellungen
readOnly="false", copyKey="false", lockStrategy="NONE"
und copyMode="NO_COPY". Sie können einige BackingMaps
mit der ausgewählten Konfiguration anpassen. Sie können das reservierte Schlüsselwort
ALL_ENTITY_MAPS verwenden, um alle Maps darzustellen mit Ausnahme anderer angepasster
Maps, die in der Datei openjpa-objectGrid.xml aufgelistet sind.
BackingMaps, die nicht in der Datei openjpa-objectGrid.xml aufgelistet sind, verwenden die Standardkonfiguration.
Wenn für angepasste BackingMaps kein Attribut "BackingMaps" oder keine Eigenschaften definiert sind, diese Attribute aber in der
Standardkonfiguration angegeben sind, werden die Attributwerte aus der Standardkonfiguration angewendet.
Ist eine Entitätsklasse beispielsweise mit timeToLive=30 annotiert, enthält
die BackingMap-Standardkonfiguration für diese Entität ebenfalls timeToLive=30.
Wenn die angepasste Datei openjpa-objectGrid.xml diese BackingMap ebenfalls enthält, aber
den timeToLive-Wert nicht definiert, wird für die angepasste BackingMap standardmäßig
der Wert timeToLive=30 verwendet. Die Datei openjpa-objectGrid.xml
soll die Standardkonfiguration überschreiben oder erweitern.
- openjpa-objectGridDeployment.xml (Implementierungsrichtlinie)
Dateipfad: META-INF/openjpa-objectGridDeployment.xml
Diese Datei wird verwendet, um die Implementierungsrichtlinie anzupassen. Wenn Sie bei der Anpassung der Implementierungsrichtlinie
die Datei openjpa-objectGridDeployment.xml bereitstellen, wird die Standardimplementierungsrichtlinie
verworfen. Alle Attributwerte für die Implementierungsrichtlinie stammen aus der bereitgestellten Datei
openjpa-objectGridDeployment.xml.
- openjpa-objectGrid-client-override.xml (ObjectGrid-Clientkorrekturkonfiguration)
Dateipfad: META-INF/openjpa-objectGrid-client-override.xml
Diese Datei wird verwendet, um ein clientseitiges ObjectGrid anzupassen.
Standardmäßig wendet der ObjectGrid-Cache eine ObjectGrid-Standardkonfiguration für Clientkorrekturwerte an, die einen nahen Cache inaktiviert.
Wenn eine Anwendung einen nahen Cache erfordert, können Sie diese Datei bereitstellen und
numberOfBuckets="xxx" angeben. Der Standardclientkorrekturwert inaktiviert den nahen Cache mit numberOfBuckets="0".
Der nahe Cache kann aktiv sein, wenn das Attribut "numberOfBuckets" über die Datei openjpa-objectGrid-client-override.xml auf einen Wert größer als 0 zurückgesetzt wird.
Die Datei openjpa-objectGrid-client-override.xml funktioniert ähnlich wie die Datei
openjpa-objectGrid.xml.
Sie überscheibt oder erweitert die Standardkonfiguration für ObjectGrid-Clientkorrekturwerte.
Je nach konfigurierter eXtreme-Scale-Topologie können Sie jede dieser drei XML-Dateien verwenden, um diese Topologie anzupassen.
Für die Typen EMBEDDED und EMBEDDED_PARTITION können Sie jede der drei XML-Dateien für die Anpassung
des ObjectGrids, der Implementierungsrichtlinie oder der Konfiguration der ObjectGrid-Clientkorrekturwerte
verwenden.
Bei ObjectGrids des Typs REMOTE erstellt der ObjectGrid-Cache kein dynamisches
ObjectGrid. Vielmehr ruft der Cache nur ein clientseitiges ObjectGrid vom Katalogservice ab.
Zum Anpassen der Konfiguration für die ObjectGrid-Clientkorrekturwerte können Sie nur eine Datei openjpa-objectGrid-client-override.xml verwenden.
- Optional: (Nur für ferne Konfigurationen) Sie müssen ein externes eXtreme-Scale-System einrichten, wenn Sie einen Cache
mit dem ObjectGrid-Typ REMOTE konfigurieren möchten.
Sie müssen ein externes eXtreme-Scale-System einrichten, wenn Sie einen Cache
mit dem ObjectGrid-Typ REMOTE konfigurieren möchten. Sie benötigen ObjectGrid- und ObjectGridDeployment-XML-Konfigurationsdateien, die auf der Datei
persistence.xml basieren, um ein externes System einrichten zu können.
Beispiele für diese Konfigurationsdateien finden Sie unter
Beispiel: OpenJPA-ObjectGrid-XML-Dateien.
Ergebnisse
EMBEDDED-, EMBEDDED_PARTITION- oder domäneninterne Konfiguration:
Wenn eine Anwendung gestartet wird, erkennt oder startet das Plug-in automatisch einen Katalogservice, startet einen Container-Server
und stellt die Verbindung zum Katalogservice her.
Das Plug-in kommuniziert anschließend mit dem ObjectGrid-Container und seinen Peers, die in anderen
Anwendungsserverprozessen ausgeführt werden, über die Clientverbindung.
REMOTE-Konfiguration:
Die Implementierungsrichtlinie
wird gesondert von der JPA-Anwendung spezifiziert.
Ein externes ObjectGrid-System hat Katalogservice- und Container-Server-Prozesse.
Sie müssen einen Katalogservice starten, bevor Sie Container-Server starten.
Weitere Informationen finden Sie unter Eigenständige Server starten und unter Container-Server starten.
Nächste Schritte
- Entwickeln Sie eine OpenJPA-Anwendung, die die Konfiguration verwendet. Weitere Informationen finden Sie im Abschnitt Beispiel: Hibernate-Plug-in zum vorherigen Laden von Daten in den ObjectGrid-Cache verwenden.
- Erstellen Sie in einer Produktionsumgebung Katalogservicedomänen für
Ihre automatisch erstellten Prozesse für die EMBEDDED- bzw. EMBEDDED_PARTITION-Konfiguration.
- Eigenständige Umgebung:
Wenn Sie Ihre Server nicht in einem Prozess
von WebSphere Application
Server ausführen,
werden die Hosts und Ports der Katalogservicedomäne über eine Eigenschaftendatei mit dem Namen
objectGridServer.properties angegeben. Diese Datei muss im Klassenpfad der Anwendung
gespeichert werden und die definierte Eigenschaft catalogServiceEndPoints haben.
Die Katalogservicedomäne wird unabhängig von den Anwendungsprozessen gestartet und muss vor den Anwendungsprozessen gestartet werden.
Das Format der Datei objectGridServer.properties ist wie folgt:
catalogServiceEndPoints=<Hostname1>:<Port1>,<Hostname2>:<Port2>
- Umgebung mit WebSphere Application
Server:
Wenn Sie in einem Prozess von
WebSphere Application
Server arbeiten,
stellt das JPA-Cache-Plug-in automatisch eine Verbindung zum Katalogservice bzw. zur Katalogservicedomäne her,
der bzw. die für die Zelle von WebSphere Application
Server definiert ist.
- Wenn Sie den ObjectGridTyp-Wert EMBEDDED oder EMBEDDED_PARTITION
in einer Java-SE-Umgebung verwenden, verwenden Sie am Ende des Programms die Methode
System.exit(0), um den integrierten eXtreme-Scale-Server zu stoppen.
Andernfalls reagiert das Programm möglicherweise nicht mehr.