1

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

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

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

GigaSpace gigaSpace = new GigaSpaceConfigurer(new UrlSpaceConfigurer("jini://...") .schema("persistent") .cachePolicy(new LruCachePolicy()) .spaceSynchronizationEndpoint(...) .spaceDataSource(...) .space ()).gigaSpace();

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

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

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

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

感谢您的帮助!

4

1 回答 1

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. 代替 ElasticSpaceDeployment 使用 ElasticStatefulProcessingUnitDeployment 并提供一个指向 /myproject/datagrid-persistency 文件夹的文件作为参数。 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))
    
    }
    
于 2013-10-13T09:30:20.970 回答