簡體   English   中英

Google App Engine HRD在Eclipse開發環境中不起作用

[英]Google App Engine HRD not working in Eclipse development environment

我花了最后一天半的時間在網上搜索答案,任何幫助都是很棒的。

問題是如何使Google App Engine高復制數據存儲(HRD)在我們的本地環境中工作,以便我們使用/測試跨組交易?

我們正在開發一個可在GAE上運行的新Java應用程序。 我們從使用Eclipse的1.6.0版本Google sdk開始。 我們選擇“高復制數據存儲”設置。 我們不使用1.6.5。 我們正在使用Objectify。

我最近注意到,Google和Objectify都完全支持跨組(XG)交易,但有一定的局限性。

我修改了部分代碼,以確保該代碼對我們有用,但遇到了問題。 當我運行junit測試或將我們的應用程序作為Web應用程序運行時,出現錯誤:

警告:java.lang.IllegalArgumentException:不能在單個事務中對多個實體組進行操作。

當我運行此代碼時:

DatastoreService ds = DatastoreServiceFactory.getDatastoreService();

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

我得到MASTER_SLAVE。

我沒有嘗試部署該應用程序以查看其是否可以正常運行。 直到我可以在本地環境中使用它之前,這可能不是一個好主意。

這是一些設置

參數,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 -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

App Engine:

使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM