Spring キャッシュ・プロバイダーの構成

[Version 8.5 and later] Spring Framework バージョン 3.1 では、新しいキャッシュの抽象化が導入されています。この新しい抽象化を使用すると、既存の Spring アプリケーションに対してキャッシュをトランスペアレントに追加できます。キャッシュ抽象化のためのキャッシュ・プロバイダーとして WebSphere® eXtreme Scale を使用できます。

始める前に

このタスクについて

Spring Framework でキャッシュ抽象化を使用することで、Java メソッドの実行回数を減らすことができます。構成後は、特定のメソッドの結果はキャッシュに入れられます。同じ引数を使用してメソッドを再実行すると、抽象化はキャッシュをチェックし、メソッドの結果が既にキャッシュに入っているかを確認します。結果がキャッシュに入っていれば、メソッドを再実行する必要はありません。 抽象化を実装すると、コストがかかるメソッドの実行回数を減らすと共に、ご使用のアプリケーションの平均応答時間を短くすることができます。

手順

  1. Spring 用の構成ファイルを使用するようにコンテナー・サーバーを構成します。

    キャッシュにアクセスする Spring アプリケーションを開始する前に、コンテナー・サーバーを開始する必要があります。 コンテナー・サーバーを開始するには、スタンドアロン・サーバーの始動を参照してください。

    eXtreme Scale Spring キャッシュ・プロバイダーのコンテナー・サーバーを開始するためのデフォルトの XML 構成ファイルは、以下のいずれかのロケーションにあります。
    • スタンドアロン・インストールの場合: wxs_install_root/ObjectGrid/spring/etc
    • WebSphere Application Server 上のインストールの場合: was_root/optionalLibraries/ObjectGrid/spring/etc
    このファイルの名前は、spring-remote-objectgrid.xml および spring-remote-deployment.xml です。これらのファイルをそのまま使用することも、カスタマイズすることも、あるいは独自に構成ファイルを作成することもできます。
    eXtreme Scale Spring キャッシュ・プロバイダーのスタンドアロン・コンテナー・サーバーを開始するには、以下のコマンドを実行します。 以下のコマンドは、wxs_home/ObjectGrid/bin ディレクトリーから実行します。
    [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. WebSphere eXtreme Scale をキャッシュ・プロバイダーとして使用するよう、Spring Inversion of Control (IoC) コンテナーを構成します。 WebSphere eXtreme Scale のキャッシュ実装環境は、 com.ibm.websphere.objectgrid.spring パッケージ内にあります。 Spring IoC コンテナー構成で以下の Bean を定義します。
    <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
    オブジェクト・リクエスト・ブローカー (ORB) のホストおよびポート番号を指定します。
    CLIENT_OVERRIDE_XML (オプション)
    クライアント・サイドで設定を変更する ObjectGrid XML ファイルの絶対パスまたは相対パスを、Spring リソースとして指定します。 Spring 内のリソースの指定について詳しくは、Spring Framework Reference Documentation: Resources を参照してください。

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

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

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

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

    CLIENT_SECURITY_CONFIG (オプション)
    client.properties ファイルの絶対パスまたは相対パスを、Spring リソースとして指定します。 Spring 内のリソースの指定について詳しくは、Spring Framework Reference Documentation: Resources を参照してください。

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

    OBJECT_GRID_NAME (オプション)
    ObjectGrid 名を指定します。提供された XML 構成ファイルを使用してコンテナー・サーバーを開始する場合、このパラメーターは不要です。このパラメーターは、コンテナー・サーバーの開始に使用する XML 構成ファイルと整合している必要があります。
    CACHE_NAME
    Spring キャッシング・アプリケーションで指定されるキャッシュの名前を指定します。
    MAP_NAME (オプション)
    キャッシュのバックアップ・マップの名前を指定します。提供された XML 構成ファイルを使用してコンテナー・サーバーを開始する場合、このパラメーターは不要です。 このパラメーターは、コンテナー・サーバーの開始に使用する XML 構成ファイルと整合している必要があります。提供された XML 構成ファイルを使用する場合は、MAP_NAME 値は必要ありません。データ・グリッドのマップは、Spring アプリケーションが実行されると自動的に作成されます。 動的マップの名前は、IBM_SPRING_PARTITIONED_ で始まります。 例: IBM_SPRING_PARTITIONED_1IBM_SPRING_PARTITIONED_2、などです。

以下のスニペットは、localhost:2809 でカタログ・サービス・ドメインがホスティングする、defaultbooks という名前の 2 つのキャッシュを作成します。
<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>