Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式为ElasticSpaceDeployment配置GigaSpaces XAP持久性?_Java_Xap_Gigaspaces - Fatal编程技术网

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

Java 如何以编程方式为ElasticSpaceDeployment配置GigaSpaces XAP持久性?,java,xap,gigaspaces,Java,Xap,Gigaspaces,我正在使用GigaSpaces XAP 9.6,希望通过在部署时传递持久性配置(SpaceDataSource、SpaceSynchronizationEndpoint),以编程方式(通过管理API)部署ElasticSpaceDeployment(仅限空间的PU) 目前,我可以通过编程方式部署ElasticSpaceDeployment,而无需持久性配置(GSM将选择“默认”空间模式来部署PU)。但我找不到任何API来设置持久性配置或在部署时将空间模式设置为“持久性” 我尝试使用“默认”模式部

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

目前,我可以通过编程方式部署ElasticSpaceDeployment,而无需持久性配置(GSM将选择“默认”空间模式来部署PU)。但我找不到任何API来设置持久性配置或在部署时将空间模式设置为“持久性”

我尝试使用“默认”模式部署PU,并使用UrlSpaceConfigurer配置持久性,如下所示:

GigaSpace GigaSpace=新的GigaSpaceConfigurer(新的UrlSpaceConfigurer(“jini://...") .schema(“持久性”) .cachePolicy(新的LruCachePolicy()) .spaceSynchronizationEndpoint(…) .spaceDataSource(…) .space()).gigaSpace()

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

此外,当我部署ElasticSpaceDeployment时,GS将使用“默认”模式(无持久性配置)自动为该PU创建空间。所以

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

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

谢谢你的帮助

  • 将$GSHOME/deploy/templates/datagrid复制到新文件夹(/myproject/datagrid persistency)中,并修改META-INF\spring\pu.xml以包含persistency配置。

  • 使用ElasticStatefulProcessingUnitDeployment代替ElasticSpaceDeployment,并提供指向/myproject/datagrid持久性文件夹的文件作为参数。

  • 将$GSHOME/deploy/templates/datagrid复制到新文件夹(/myproject/datagrid persistency)中,并修改META-INF\spring\pu.xml以包含persistency配置。

  • 使用ElasticStatefulProcessingUnitDeployment代替ElasticSpaceDeployment,并提供指向/myproject/datagrid持久性文件夹的文件作为参数。


  • 谢谢@itaifrenkel。但我有一些限制,阻止我们使用ElasticStatefolProcessingUnitDeployment。“我们希望在运行时使用动态/随机生成的空格/PU名称。”因此,如果我们使用ElasticStatefulProcessingUnitDeployment,我们必须在描述符文件(PU.xml)中预定义空格/PU名称。仅供参考,我们正在开发使用XAP作为底层平台的平台,我们只允许用户通过我们提供的API访问VM的资源(如空间、处理组件等)。用户将不知道XAP在幕后,也不允许直接将.jar上传到VM实例。pu.xml不必更改。请参阅我添加到answerWow中的代码示例!这似乎是我的灵丹妙药。但是还有一个问题。如果我想通过使用随机生成的凭据访问dbms来保护后端数据库(出于安全原因,每个空间/PU将有自己的凭据连接到dbms)。每个DataSource/DataSync实现都有自己的配置(Cassandra、MongoDB、Hibernate……配置不一样)。如何向PU提供配置?。如果没有直截了当的方法,我们可以使用生成的temp pu.xml文件来部署每个pu,并在部署完成后立即删除它们吗?您应该在SO:)中对此提出新的问题,但请检查userDetails()方法的ElasticStatefulProcessingUnitDeployment JavaDoc。为每个后端使用不同的datagrid文件夹或使用spring配置文件。无需创建临时文件。谢谢@itaifrenkel。但我有一些限制,阻止我们使用ElasticStatefolProcessingUnitDeployment。“我们希望在运行时使用动态/随机生成的空格/PU名称。”因此,如果我们使用ElasticStatefulProcessingUnitDeployment,我们必须在描述符文件(PU.xml)中预定义空格/PU名称。仅供参考,我们正在开发使用XAP作为底层平台的平台,我们只允许用户通过我们提供的API访问VM的资源(如空间、处理组件等)。用户将不知道XAP在幕后,也不允许直接将.jar上传到VM实例。pu.xml不必更改。请参阅我添加到answerWow中的代码示例!这似乎是我的灵丹妙药。但是还有一个问题。如果我想通过使用随机生成的凭据访问dbms来保护后端数据库(出于安全原因,每个空间/PU将有自己的凭据连接到dbms)。每个DataSource/DataSync实现都有自己的配置(Cassandra、MongoDB、Hibernate……配置不一样)。如何向PU提供配置?。如果没有直截了当的方法,我们可以使用生成的temp pu.xml文件来部署每个pu,并在部署完成后立即删除它们吗?您应该在SO:)中对此提出新的问题,但请检查userDetails()方法的ElasticStatefulProcessingUnitDeployment JavaDoc。为每个后端使用不同的datagrid文件夹或使用spring配置文件。不需要创建临时文件。
    public void deploy (GridServiceManager gsm, String tenantName) {
    
        gsm.deploy(
                new ElasticStatefulProcessingUnitDeployment("/myproject/datagrid-persistency")
                .name(tenantName))
    
    }