2012-03-29 98 views
0

我們已經部署在DSS不同的服務,我們有緩存的方式不同:緩存設置

  • 沒有緩存
  • 1小時緩存
  • 1天緩存

有沒有什麼辦法可以在不使用管理控制檯的情況下將這個緩存直接設置到每個dbs文件?

另一種方法是通過配置文件設置這三個緩存,然後從dbs文件中引用它們。

我們正在尋找的解決方案是不使用管理控制檯。

回答

1

確實可以在不使用管理控制檯的情況下通過配置文件爲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