OpenJPA-Cache-Plug-in konfigurieren

Sie können DataCache- und QueryCache-Implementierungen für OpenJPA konfigurieren.

Vorbereitende Schritte

Vorgehensweise

  1. 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.
  2. In der Datei persistence.xml müssen Sie die Eigenschaft "openjpa.RemoteCommitProvider" auf sjvm setzen.
    <property name="openjpa.RemoteCommitProvider" value="sjvm"/>
  3. 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.

  4. 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