我们在DSS中部署了不同的服务,我们有不同的缓存方式:
有没有办法在不使用管理控制台的情况下直接将此缓存设置到每个dbs文件?
另一种方法是通过配置文件设置这三个缓存,然后从dbs文件中引用它们。
我们正在寻找的解决方案是不使用管理控制台。
答案 0 :(得分:1)
确实可以通过配置文件为数据服务配置缓存,而无需使用管理控制台。每个dataservice都部署为axis2服务的形式。因此,您可以使用通常用于配置与axis2服务相关的参数的“services.xml”文件,以及稍微修改的dataservices。也就是说,如果您的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文件放在上述目录中后,您必须从axis2.xml配置文件中注释掉以下条目,该文件位于“DSS_HOME / repository / conf”目录中。
<listener class="org.wso2.carbon.core.deployment.DeploymentInterceptor">
现在您可以继续部署了。重新启动服务器,您将能够使上述功能正常工作。
注意:您还希望了解到,我们即将推出的DSS版本已在DSS中对此空间进行了大量改进。 (DSS 3.0.0)。
此致 Prabath