Configurando um Provedor de Cache Spring

[Version 8.5 and later] O Spring Framework Versão 3.1 introduziu uma nova abstração de cache. Com essa nova abstração, é possível incluir de modo transparente o armazenamento em cache em um aplicativo Spring existente. É possível usar o WebSphere eXtreme Scale como o provedor de cache para a abstração de cache.

Antes de Iniciar

Sobre Esta Tarefa

Usando a abstração de cache na estrutura do Spring, é possível reduzir o número de vezes que seu método Java é executado. Quando configurado, os resultados de um método específico são colocados no cache. Quando o método é executado novamente com os mesmos argumentos, a abstração verifica o cache para ver se os resultados do método já estão no cache. Se os resultados estiverem no cache, o método não precisará ser executado novamente. A implementação de abstração pode reduzir o número de vezes que os métodos caros são executados, diminuindo também o tempo médio de resposta de seu aplicativo.

Procedimento

  1. Configure os seus servidores de contêiner para usar os arquivos de configuração para Spring.

    Você deve iniciar os servidores de contêiner antes que o aplicativo Spring que acessa o cache seja iniciado. Para iniciar os servidores de contêiner, consulte Iniciando Servidores Independentes.

    Os arquivos de configuração XML padrão para iniciar um servidor de contêiner para o provedor de cache do eXtreme Scale Spring estão em um dos seguintes locais:
    • Instalações independentes: wxs_install_root/ObjectGrid/spring/etc
    • Instalações do WebSphere Application Server: was_root/optionalLibraries/ObjectGrid/spring/etc
    Os arquivos são chamados de spring-remote-objectgrid.xml e spring-remote-deployment.xml. É possível usar esses arquivos no estado em que se encontram, personalizar tais arquivos ou criar seus próprios arquivos de configuração.
    Execute o comando a seguir para iniciar um servidor de contêiner independente para o provedor de cache eXtreme Scale Spring. Execute o comando a seguir no diretório 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. Configure o contêiner Spring Inversion of Control (IoC) para usar o WebSphere eXtreme Scale como o provedor de cache. A implementação do cache do WebSphere eXtreme Scale reside sob o pacote com.ibm.websphere.objectgrid.spring. Defina os beans a seguir em sua configuração de contêiner Spring IoC.
    <bean id="wxsCSDomain" class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean"
      p:catalog-service-endpoints="CATALOG_SERVICE_ENDPOINTS" 
      p:client-override-xml="CLIENT_OVERRIDE_XML (opcional)"
      p:client-security-config="CLIENT_SECURITY_CONFIG (opcional)" />
    
    <bean id="wxsGridClient" class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean" 
      p:object-grid-name="OBJECT_GRID_NAME(opcional)"
      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 (opcional)"
    	        p:object-grid-client-ref="wxsGridClient" />
         </set>
       </property>
    </bean>
    CATALOG_SERVICE_ENDPOINTS
    Especifica o host e o número da porta do Object Request Broker (ORB).
    CLIENT_OVERRIDE_XML (opcional)
    Especifica um caminho absoluto ou relativo para um arquivo XML do ObjectGrid que altera as configurações no lado do cliente como um recurso do Spring. Para obter informações sobre como especificar recursos no Spring, consulte Spring Framework Reference Documentation: Resources.

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

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

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

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

    CLIENT_SECURITY_CONFIG (opcional)
    Especifica um caminho absoluto ou relativo para um arquivo client.properties como um recurso do Spring. Para obter informações sobre como especificar recursos no Spring, consulte Spring Framework Reference Documentation: Resources.

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

    OBJECT_GRID_NAME (opcional)
    Especifica o nome ObjectGrid. Esse parâmetro não será necessário se os servidores de contêiner forem iniciados com os arquivos de configuração XML fornecidos. Esse parâmetro deve ser consistente com os arquivos de configuração XML que são usados para iniciar os servidores de contêiner.
    CACHE_NAME
    Especifica o nome do cache que é especificado para o seu aplicativo de cache do Spring.
    MAP_NAME (opcional)
    Especifica o nome do mapa de apoio para um cache. Esse parâmetro não será necessário se os servidores de contêiner forem iniciados com os arquivos de configuração XML fornecidos. Esse parâmetro deve ser consistente com os arquivos de configuração XML usados para iniciar os servidores de contêiner. Se você usar os arquivos de configuração do XML fornecidos, o valor MAP_NAME não é necessário. Os mapas para a grade de dados são criados automaticamente quando o aplicativo Spring é executado. O nome do mapa dinâmico inicia com IBM_SPRING_PARTITIONED_. For example: IBM_SPRING_PARTITIONED_1, IBM_SPRING_PARTITIONED_2, e assim por diante.

Exemplo

O fragmento a seguir cria dois caches, denominados default e books hospedados pelo domínio do serviço de catálogos em localhost:2809.
<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>