缓存设置

问题描述:

我们已经部署在DSS不同的服务,我们有缓存的方式不同:缓存设置

  • 没有缓存
  • 1小时缓存
  • 1天缓存

有没有什么办法可以在不使用管理控制台的情况下将这个缓存直接设置到每个dbs文件?

另一种方法是通过配置文件设置这三个缓存,然后从dbs文件中引用它们。

我们正在寻找的解决方案是不使用管理控制台。

确实可以在不使用管理控制台的情况下通过配置文件为dataservices配置缓存。每个数据服务都以axis2服务的形式进行部署。因此,您可以使用通常用于配置axis2服务相关参数的“services.xml”文件,而数据服务器也可以稍作修改。也就是说,如果您的dataservice的名称是“TestDS”,那么您必须将services.xml文件命名为“TestDS_services.xml”,并将其放在dataservices部署目录中,该目录可位于“DSS_HOME/repository/deployment/server /数据服务”。然后,您可以在上述配置文件中包含具有自己的值的缓存策略作为参数。另外需要注意的是,您可以从三个级别进行数据调整,即每个服务组/每个服务/每个操作。

示例services.xml如下所示。

<serviceGroup> 
    <service name="TestDS"> 
     <!--parameter name="ServiceObjectSupplier">org.apache.axis2.engine.DefaultObjectSupplier</parameter--> 
    <Description>Enabling caching through sevices.xml</Description> 

    <operation name="op1"> 
     <messageReceiver class="org.wso2.carbon.dataservices.core.DBInOutMessageReceiver"/> 
    <module ref="wso2caching"/> 
     <wsp:Policy 
      wsu:Id="WSO2CachingPolicy" 
      xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
      xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
     <wsch:CachingAssertion xmlns:wsch="http://www.wso2.org/ns/2007/06/commons/caching"> 
     <wsp:Policy> 
      <wsp:All> 
      <wsch:XMLIdentifier>org.wso2.caching.digest.DOMHASHGenerator</wsch:XMLIdentifier> 
      <wsch:ExpireTime>70000</wsch:ExpireTime> 
      <wsch:MaxCacheSize>1000</wsch:MaxCacheSize> 
      <wsch:MaxMessageSize>1000</wsch:MaxMessageSize> 
      </wsp:All> 
     </wsp:Policy> 
     </wsch:CachingAssertion> 
     </wsp:Policy> 
    </operation> 

    <operation name="op2"> 
     <messageReceiver class="org.wso2.carbon.dataservices.core.DBInOutMessageReceiver"/> 
    <module ref="wso2caching"/> 
     <wsp:Policy 
      wsu:Id="WSO2CachingPolicy" 
      xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
      xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
     <wsch:CachingAssertion xmlns:wsch="http://www.wso2.org/ns/2007/06/commons/caching"> 
     <wsp:Policy> 
      <wsp:All> 
      <wsch:XMLIdentifier>org.wso2.caching.digest.DOMHASHGenerator</wsch:XMLIdentifier> 
      <wsch:ExpireTime>600000</wsch:ExpireTime> 
      <wsch:MaxCacheSize>1000</wsch:MaxCacheSize> 
      <wsch:MaxMessageSize>1000</wsch:MaxMessageSize> 
      </wsp:All> 
     </wsp:Policy> 
     </wsch:CachingAssertion> 
     </wsp:Policy> 
    </operation> 
     <operation name="op3"> 
     </operation> 

    </service> 
    </serviceGroup> 

把你的“data_service_name” _services.xml文件在上述目录中后,你必须注释掉从可位于“DSS_HOME /库/ conf目录”目录axis2.xml配置文件以下条目。

<listener class="org.wso2.carbon.core.deployment.DeploymentInterceptor"> 

现在你很乐意与你的部署。重新启动服务器,您将能够获得上述功能。

注意:您还想知道,我们即将推出的DSS版本在DSS的此空间上已做了很多改进。 (DSS 3.0.0)。

问候, Prabath

+0

感谢您的帮助,它运作良好,现在 – 2012-07-26 09:02:27

+0

大听到它为你工作! :) – 2012-07-28 19:55:16