gpt4 book ai didi

java - Google App Engine HRD 无法在 Eclipse 开发环境中运行

转载 作者:行者123 更新时间:2023-11-29 09:14:19 25 4
gpt4 key购买 nike

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

问题是我们如何让 google app engine 高复制数据存储 (HRD) 在我们的本地环境中工作,以便我们使用/测试跨组事务?

我们正在开发一个在 GAE 上运行的新 Java 应用程序。我们从使用 Eclipse 的 1.6.0 版 Google SDK 开始。我们选择 High Replication Datastore 设置。我们不使用 1.6.5。我们正在使用 Objectify。

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

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

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

当我运行这段代码时:

DatastoreService ds = DatastoreServiceFactory.getDatastoreService();

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

我得到 MASTER_SLAVE。

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

这里是一些设置

参数,虚拟机参数:

-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 -Xmx512m -XstartOnFirstThread -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

应用引擎:

选中使用 Google App Eninge

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

选中启用本地 HRD 支持

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

最佳答案

您似乎没有正确使用跨组 (XG) 交易。查看事务文档并查看“使用跨组事务”部分下的代码示例。有一个很好的工作代码示例可以帮助您入门。

https://developers.google.com/appengine/docs/java/datastore/transactions#Uses_for_Transactions

关于java - Google App Engine HRD 无法在 Eclipse 开发环境中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10453035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com