0

我们在 DSS 中部署了不同的服务,并且我们有不同的缓存方式:

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

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

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

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

4

1 回答 1

1

确实可以通过配置文件为数据服务配置缓存,而无需使用管理控制台。每个数据服务都以axis2 服务的形式部署。因此,您可以使用通常用于配置axis2服务相关参数的“services.xml”文件,也可以对dataservices稍作修改。也就是说,如果您的数据服务的名称是“TestDS”,那么您必须将您的 services.xml 文件命名为“TestDS_services.xml”并将其放置在数据服务部署目录中,该目录可以位于“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/repository/conf”目录下的axis2.xml 配置文件中的以下条目注释掉。

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

现在您可以开始部署了。重新启动服务器,您将能够使上述功能正常工作。

注意:您还想知道,我们在即将发布的 DSS 中对 DSS 中的这个空间进行了很多改进。(DSS 3.0.0)。

问候, 普拉巴斯

于 2012-07-19T08:01:44.370 回答