如何以编程方式为ElasticSpaceDeployment配置GigaSpaces XAP持久性?

时间:2013-10-11 08:39:33

标签: java xap gigaspaces

我正在使用GigaSpaces XAP 9.6并希望通过在部署时传递持久性配置(SpaceDataSource,SpaceSynchronizationEndpoint)以编程方式(通过Admin API)部署ElasticSpaceDeployment(仅空间PU)。

目前,我可以在没有持久性配置的情况下以编程方式部署ElasticSpaceDeployment(GSM将选择“DEFAULT”空间架构来部署PU)。但我找不到任何API来设置持久性配置或在部署时将空间架构设置为“PERSISTENT”。

我尝试使用“DEFAULT”架构部署PU,并使用UrlSpaceConfigurer配置持久性,如:

GigaSpace gigaSpace =新的GigaSpaceConfigurer(新的UrlSpaceConfigurer(“jini:// ...”))   .schema( “老大难”)   .cachePolicy(new LruCachePolicy())   的 .spaceSynchronizationEndpoint(...)   .spaceDataSource(...)   。。空间())gigaSpace();

我知道使用上面的代码将返回找到的空间(如果存在)或创建新的空格(如果不存在)。因此,此代码不会尝试重新配置空间配置而不是获取它们。

此外,当我部署ElasticSpaceDeployment时,GS将使用“DEFAULT”架构(没有持久性配置)自动为此PU创建空间。所以......

1)如何在部署时为ElasticSpaceDeployment PU定义持久性配置?

2)或者,我如何重新配置​​空间的持久性配置? (部署并稍后重新配置)

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

  1. 将$ GSHOME / deploy / templates / datagrid复制到新文件夹(/ myproject / datagrid-persistency)并修改META-INF \ spring \ pu.xml以包含持久性配置。 http://wiki.gigaspaces.com/wiki/display/XAP96/Asynchronous+Persistency+with+the+Mirror

  2. 使用ElasticStatefulProcessingUnitDeployment代替ElasticSpaceDeployment,并提供指向/ myproject / datagrid-persistency文件夹的File作为参数。 http://www.gigaspaces.com/docs/JavaDoc9.6/org/openspaces/admin/pu/elastic/ElasticStatefulProcessingUnitDeployment.html#ElasticStatefulProcessingUnitDeployment(java.io.File)

    public void deploy (GridServiceManager gsm, String tenantName) {
    
        gsm.deploy(
                new ElasticStatefulProcessingUnitDeployment("/myproject/datagrid-persistency")
                .name(tenantName))
    
    }