2012-05-04 17 views
2

私は最後の1日半をウェブで検索して答えを得ましたが、どんな助けも素晴らしいでしょう。Google App Engine HRDがEclipse開発環境で動作しない

問題はGoogleのローカル環境でGoogleのアプリケーションエンジンの高レプリケーションデータストア(HRD)を使用して、クロスグループのトランザクションをテスト/テストする方法です。

GAEで実行する新しいJavaアプリケーションを開発しています。 Eclipseを使用してGoogle sdk 1.6.0バージョンから始めました。高レプリケーションデータストアの設定を選択します。私たちは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ここ

は、いくつかの設定は

引数、VM引数です/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をチェックし有効を選択データストアのチェック

答えて

0

クロスグループ(XG)トランザクションを正しく使用していないようです。トランザクションドキュメントを見て、「クロスグループトランザクションの使用」セクションのコードサンプルを見てください。あなたが作業を始めるための良い作業コードの例があります。

+0

ありがとうございました。私たちはコードを通してトランザクションを使用しており、正常に動作しています。私が解決しようとしている問題は、HIGH_REPLICATIONを使用させる代わりに、私たちのローカル開発環境がMASTER_SLAVEに固執しているように見える理由です。それが私たちがまだクロス・グループ・トランザクションを行うことができない理由であると仮定しています。 – Jim

+0

新しいHello Worldプロジェクトを作成し、提供したリンクからコードXGコードを追加しました。私はデータストアがMASTER_SLAVEであると報告していても動作します。 ObjectifyがXGを扱うことができるデータストアの能力を適切に評価していないと私は考えています。助けてくれてありがとうございました。 – Jim

関連する問題