Spring-Cache-Provider konfigurieren

[Version 8.5 und höher] Spring Framework Version 3.1 führt eine neue Cacheabstraktion ein. Mit dieser neuen Abstraktion können Sie einer vorhandenen Spring-Anwendung Caching transparent hinzufügen. Sie können WebSphere eXtreme Scale als Cache-Provider für die Cacheabstraktion verwenden.

Vorbereitende Schritte

Informationen zu diesem Vorgang

Mithilfe der Cacheabstraktion im Spring-Framework können Sie die Anzahl der Ausführungen Ihrer Java-Methode reduzieren. Sofern konfiguriert, werden die Ergebnisse einer bestimmten Methode in den Cache geschrieben. Wenn die Methode erneut mit denselben Argumenten ausgeführt wird, überprüft die Abstraktion den Cache, um festzustellen, ob die Methodenergebnisse bereits im Cache enthalten sind. Sind die Ergebnisse im Cache enthalten, muss die Methode nicht erneut ausgeführt werden. Durch die Implementierung der Abstraktion können die Anzahl der Ausführungen kostenintensiver Methoden und die durchschnittliche Antwortzeit Ihrer Anwendung reduziert werden.

Vorgehensweise

  1. Konfigurieren Sie Ihre Container-Server für die Verwendung der Konfigurationsdateien für Spring.

    Sie müssen Container-Server vor der Spring-Anwendung, die auf den Cache zugreift, starten. Informationen zum Starten der Container-Server finden Sie unter Eigenständige Server starten.

    Die XML-Standardkonfigurationsdateien für das Starten eines Container-Servers für den Spring-Cache-Provider von eXtreme Scale befinden sich an einer der folgenden Positionen: Die Dateien haben die Namen spring-remote-objectgrid.xml und spring-remote-deployment.xml. Sie können diese Dateien unverändert verwenden, die Dateien anpassen oder eigene Konfigurationsdateien erstellen.
    Führen Sie den folgenden Befehl aus, um einen eigenständigen Container-Server für den Spring-Cache-Provider von eXtreme Scale zu starten. Führen Sie den folgenden Befehl im Verzeichnis WXS-Ausgangsverzeichnis/ObjectGrid/bin aus:
    [Windows]
    startOgServer.bat container1 -objectGridFile ../spring/etc/spring-remote-objectgrid.xml 
    -deploymentPolicyFile ../spring/etc/spring-remote-deployment.xml

    [Unix]
    startOgServer.sh container1 -objectGridFile ../spring/etc/spring-remote-objectgrid.xml 
    -deploymentPolicyFile ../spring/etc/spring-remote-deployment.xml
  2. Konfigurieren Sie den Spring-IoC-Container (Inversion of Control) für die Verwendung von WebSphere eXtreme Scale als Cache-Provider. Die Cacheimplementierung von WebSphere eXtreme Scale befindet sich im Paket com.ibm.websphere.objectgrid.spring. Definieren Sie die folgenden Beans in Ihrer Spring-IoC-Container-Konfiguration:
    <bean id="wxsCSDomain" class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean"
      	p:catalog-service-endpoints="CATALOG_SERVICE_ENDPOINTS" 
      	p:client-override-xml="CLIENT_OVERRIDE_XML (optional)"
      	p:client-security-config="CLIENT_SECURITY_CONFIG (optional)" />
    
    <bean id="wxsGridClient" class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean" 
      	p:object-grid-name="OBJECT_GRID_NAME(optional)"
      p:catalog-service-domain-ref="wxsCSDomain" /> 
    
    <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
      	<property name="caches">   
        		<set>    
          			<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"     
             				p:name="CACHE_NAME"
             				p:map-name="MAP_NAME (optional)"
    				p:object-grid-client-ref="wxsGridClient" />   
         		</set>  
       </property>
    </bean>
    CATALOG_SERVICE_ENDPOINTS
    Gibt den Host und den Port des Object Request Broker (ORB) an.
    CLIENT_OVERRIDE_XML (optional)
    Gibt einen absoluten oder relativen Pfad zu einer ObjectGrid-XML-Datei an, in der Einstellungen auf der Einstellungen auf der Clientseite als Spring-Ressource geändert werden müssen. Weitere Informationen zur Angabe von Ressourcen in Spring finden Sie unter Spring Framework Reference Documentation: Resources.

    Beispiel:p:client-override-xml="file:/path/to/objectgrid.xml"

    Beispiel_p:client-override-xml="classpath:com/example/app/override-objectgrid.xml"

    Beispiel:p:client-override-xml="http://myserver/override-objectgrid.xml"

    Beispiel:p:client-override-xml="ftp://myserver/override-objectgrid.xml"

    CLIENT_SECURITY_CONFIG (optional)
    Gibt einen absoluten oder relativen Pfad zu einer Datei client.properties als Spring-Ressource an. Weitere Informationen zur Angabe von Ressourcen in Spring finden Sie unter Spring Framework Reference Documentation: Resources.

    Beispiel:p:client-security-config="file:/path/to/client.properties"

    OBJECT_GRID_NAME (optional)
    Gibt den ObjectGrid-Namen an. Dieser Parameter ist nicht erforderlich, wenn die Container-Server mit den bereitgestellten XML-Konfigurationsdateien gestartet werden. Dieser Parameter muss mit den XML-Konfigurationsdateien konsistent sein, die zum Starten der Container-Server verwendet werden.
    CACHE_NAME
    Gibt den Namen des Caches an, der in Ihrer Spring-Caching-Anwendung angegeben ist.
    MAP_NAME (optional)
    Gibt den Namen der BackingMap für einen Cache an. Dieser Parameter ist nicht erforderlich, wenn die Container-Server mit den bereitgestellten XML-Konfigurationsdateien gestartet werden. Dieser Parameter muss mit den XML-Konfigurationsdateien konsistent sein, die zum Starten der Container-Server verwendet werden. Wenn Sie die bereitgestellten XML-Konfigurationsdateien verwenden, ist der MAP_NAME-Wert nicht erforderlich. Die Maps für das Datengrid werden automatisch erstellt, wenn die Spring-Anwendung ausgeführt wird. Der Name der dynamischen Map beginnt mit IBM_SPRING_PARTITIONED_. Beispiel: IBM_SPRING_PARTITIONED_1, IBM_SPRING_PARTITIONED_2 usw.

Beispiel

Das folgende Snippet erstellt zwei Caches mit den Namen default und books, die von der Katalogservicedomäne unter localhost:2809 gehostet werden.
<bean id="wxsCSDomain" class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean" 
	p:catalog-service-endpoints ="localhost:2809" />  
<bean id="wxsGridClient" class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean"  
	p:catalog-service-domain-ref="wxsCSDomain" /> 
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">  
	<property name="caches">   
		<set>    
			<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"     
				p:name="default"     
				p:object-grid-client-ref="wxsGridClient" />   
			<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"     
				p:name="books"     
				p:object-grid-client-ref="wxsGridClient" />   
		</set>  
	</property>
</bean>