Java Google应用程序引擎HRD在Eclipse开发环境中不工作

Java Google应用程序引擎HRD在Eclipse开发环境中不工作,java,eclipse,google-app-engine,Java,Eclipse,Google App Engine,我花了一天半的时间在网上搜索答案,任何帮助都会很好 问题是我们如何让google app engine high replication data store(HRD)在本地环境中工作,以便使用/测试跨组事务 我们正在开发一个新的java应用程序来运行GAE。我们从使用Eclipse的1.6.0版GoogleSDK开始。我们选择高复制数据存储设置。我们不使用1.6.5。 我们正在使用Objectify 我最近注意到Google和Objectify都完全支持有限制的跨组(XG)事务 我修改了代码的

我花了一天半的时间在网上搜索答案,任何帮助都会很好

问题是我们如何让google app engine high replication data store(HRD)在本地环境中工作,以便使用/测试跨组事务

我们正在开发一个新的java应用程序来运行GAE。我们从使用Eclipse的1.6.0版GoogleSDK开始。我们选择高复制数据存储设置。我们不使用1.6.5。 我们正在使用Objectify

我最近注意到Google和Objectify都完全支持有限制的跨组(XG)事务

我修改了代码的一部分,以确保它对我们有效,但遇到了问题。 当我运行junit测试或将应用程序作为web应用程序运行时,会出现以下错误:

警告:java.lang.IllegalArgumentException:无法在一个事务中对多个实体组进行操作

当我运行此代码时:

DatastoreService ds=DatastoreServiceFactory.getDatastoreService()

System.out.println(ds.getDatastoreAttributes().getDatastoreType())

我得到了主人和奴隶

我还没有尝试部署应用程序以查看它是否在那里工作。在我能让它在当地环境下工作之前,这可能不是个好主意

这里有一些设置 参数,VM参数:

-javaagent:/eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.6.5/appengine-java-sdk-1.6.5/lib/agent/appengine-agent.jar-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=50-xmx512-xstartonfirsthread-Xbootclasspath/p:/eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.6.5/appengine-java-sdk-1.6.5/lib/override/appengine-dev-jdk-overrides.jar

应用程序引擎:

使用谷歌应用程序检查

选择使用默认SDK(appengine-java-SDK-1.6.5-1.6.5)

启用本地HRD支持已选中


使用Datanucleus JDO/JPA访问选中的数据存储

看起来您没有正确使用跨组(XG)事务。查看事务文档,并查看“使用跨组事务”部分下的代码示例。有一个很好的工作代码示例可以帮助您开始


看起来您没有正确使用跨组(XG)事务。查看事务文档,并查看“使用跨组事务”部分下的代码示例。有一个很好的工作代码示例可以帮助您开始


谢谢您的链接。我们在代码中一直使用事务,并且运行良好。我试图解决的问题是,为什么我们的本地开发环境似乎停留在主从上,而不是让我们使用高复制。我假设这就是我们不能进行跨组交易的原因。我创建了一个新的Hello World项目,并从您提供的链接中添加了代码XG代码。即使数据存储仍然报告它是主从,我仍然工作。这让我认为Objectify没有正确评估数据存储处理XG的能力。非常感谢你的帮助。谢谢你的链接。我们在代码中一直使用事务,并且运行良好。我试图解决的问题是,为什么我们的本地开发环境似乎停留在主从上,而不是让我们使用高复制。我假设这就是我们不能进行跨组交易的原因。我创建了一个新的Hello World项目,并从您提供的链接中添加了代码XG代码。即使数据存储仍然报告它是主从,我仍然工作。这让我认为Objectify没有正确评估数据存储处理XG的能力。非常感谢你的帮助。