Spring-Cache-Provider konfigurieren

[Version 2.1 and later] Mit Spring Framework Version 3.1 wurde eine neue Cache-Abstraktion eingeführt. Mit dieser Abstraktion können Sie Caching transparent zu einer vorhandenen Spring-Anwendung hinzufügen. Sie können WebSphere DataPower XC10 Appliance als Cache-Provider für die Cache-Abstraktion verwenden.

Vorbereitende Schritte

  • Sie müssen über eine Anwendung verfügen, von der Spring Framework Version 3.1 oder eine aktuellere Version verwendet wird.
  • Von der Anwendung müssen die Methoden zum Zwischenspeichern mithilfe von Annotationen deklariert werden. Weitere Informationen zum Aktualisieren der Anwendung für die Cache-Abstraktion finden Sie unter Spring Framework Reference Documentation: Cache abstraction.
  • Stellen Sie sicher, dass die Datei ogclient.jar sich im Klassenpfad für die Spring-Anwendung befindet.
  • Wenn es sich bei der JVM, auf der Ihre Anwendung ausgeführt wird, nicht um die JVM handelt, die von WebSphere eXtreme Scale Client installiert wird, müssen Sie das folgende JVM-Argument hinzufügen, so dass der IBM Object Request Broker (ORB) verwendet wird:
    -Djava.endorsed.dirs=wxs_root/lib/endorsed 
  • Sie müssen ein einfaches Daten-Grid in der Benutzerschnittstelle erstellen. Weitere Informationen finden Sie unter Einfache Daten-Grids erstellen.
  • Wenn Sie eine Verbindung von Ihrer Spring-Anwendung zu sicheren Daten-Grids herstellen, müssen Sie eine entsprechende Datei client.properties als Wert für den Parameter client-security-config angeben. Geben Sie diesen Parameter in der ObjectGridCatalogServiceDomainBean in Ihrer Spring-IoC-Containerkonfiguration (IoC - Inversion of Control) an. Sie können den Spring-Cache-Provider so konfigurieren, dass Clientauthentifizierung und TLS für den sicheren Netztransport verwendet werden. Weitere Informationen finden Sie unter Clienteigenschaftendatei, Clientauthentifizierung für Daten-Grid-Anwendung konfigurieren und TLS für Daten-Grid-Anwendungen konfigurieren.
  • Der Hostname des Katalogservers und der Port für das Gerät müssen bekannt sein. Zum Abrufen dieser Informationen klicken Sie auf Verbund > Member in der Benutzerschnittstelle.

Informationen zu diesem Vorgang

Wenn Sie die Cache-Abstraktion in einem Spring-Framework verwenden, können Sie die Anzahl der Java-Ausführungen reduzieren. Bei entsprechender Konfiguration werden die Ergebnisse einer bestimmten Methode in den Cache versetzt. Wenn die Methode wieder mit denselben Argumente ausgeführt wird, wird von der Abstraktion der Cache überprüft, um festzustellen, ob sich die Ergebnisse für die Methode bereits im Cache befinden. Wenn sich die Ergebnisse bereits im Cache befinden, muss die Methode nicht erneut ausgeführt werden. Die Implementierung der Abstraktion kann die Anzahl der Ausführung dieser aufwändigen Methoden reduzieren und auch die durchschnittliche Antwortzeit der Anwendung senken.

Vorgehensweise

Konfigurieren Sie den Spring-IoC-Container (IoC - Inversion of Control) so, dass WebSphere DataPower XC10 Appliance als Cache-Provider verwendet wird. Die Cache-Implementierung von WebSphere DataPower XC10 Appliance befindet sich im Paket com.ibm.websphere.objectgrid.spring. Definieren Sie die folgenden Beans in der Konfiguration des Spring-IoC-Containers.
<bean id="wxsCSDomain" class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean"
  p:catalog-service-endpoints="CATALOG_SERVICE_ENDPOINTS" 
  />

<bean id="wxsGridClient" class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean" 
  p:object-grid-name="OBJECT_GRID_NAME"
  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 "
	        p:object-grid-client-ref="wxsGridClient" />
     </set>
   </property>
</bean>
CATALOG_SERVICE_ENDPOINTS
Gibt den Hostnamen und den Port des Katalogservers an.
Gibt einen absoluten oder relativen Pfad zu einer XML-Datei 'ObjectGrid' zum Ändern der Einstellungen für die Clientseite als Spring-Ressource an. Informationen zum Angeben 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. Informationen zum Angeben von Ressourcen in Spring finden Sie unter Spring Framework Reference Documentation: Resources. Weitere Informationen zum Erstellen einer Datei client.properties für WebSphere DataPower XC10 Appliance finden Sie unter Clientauthentifizierung für Daten-Grid-Anwendung konfigurieren.

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

OBJECT_GRID_NAME
Gibt den ObjectGrid-Namen an. Dieser Parameter ist nicht erforderlich, wenn die Container-Server mit den bereitgestellten XML-Konfigurationsdateien gestartet werden. Dieser Wert entspricht dem Namen des einfachen Daten-Grids, das Sie in der Benutzerschnittstelle erstellt haben.
CACHE_NAME
Gibt den Namen des Cache an, der für Ihre Spring-Caching-Anwendung angegeben ist.
MAP_NAME
Gibt den Namen der Sicherungsmap für den Cache an. Dieser Wert entspricht dem Namen des einfachen Daten-Grids, das Sie in der Benutzerschnittstelle erstellt haben. Wenn Sie einen anderen Mapnamen als den Standardnamen verwenden wollen, können Sie eine dynamische Map definieren. Weitere Informationen zum Erstellen dynamischer Maps finden Sie unter Konfigurationsoptionen für dynamische Maps.

Beispiel

Mit dem folgenden Snippet wird ein Cache erstellt mit dem Namen default, der von einem Gerät gehostet wird unter myXC10.myhost.com:2809. In diesem Beispiel wird die Standard-Map-Instanz verwendet, die denselben Namen wie das Daten-Grid hat.
<bean id="wxsCSDomain" class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean" 
	p:catalog-service-endpoints ="myXC10.myhost.com:2809" />  
<bean id="wxsGridClient" class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean"  
	p:object-grid-name=”my_simple_data_grid” 
  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:map-name=”my_simple_data_grid”    
				p:object-grid-client-ref="wxsGridClient" />   
		</set>  
	</property>
</bean>
Übergeordnetes Thema: Daten-Grids verwalten