[英]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.