3

Google App Engine データストアに JDO レベル 2 キャッシュを使用することは可能ですか (それは理にかなっていますか)?

まず第一に、Google のページにこれに関するドキュメントがないのはなぜですか? 問題はありますか?memcache クォータを保護するために制限を設定する必要がありますか?

Stackoverflow の DataNucleus によると、次の永続化プロパティを設定できます。

 datanucleus.cache.level2.type=javax.cache
 datanucleus.cache.level2.cacheName={cache name}

それだけですか?任意のキャッシュ名を選択できますか?

インターネット上の他の 情報源は、異なる設定を使用していると報告しています。

また、 DataNucleus Cache サポート プラグインをダウンロードする必要があるようです。どのバージョンが適切でしょうか? そして、それを配置するだけWEB-INF/libですか、それともアクティブにするためにさらにセットアップが必要ですか?

4

3 に答える 3

3

これを理解する前に、1 つの質問に答える必要があります。

どのバージョンの DataNucleus を使用していますか?

この投稿のすべては、古いバージョンのプラグイン (v1.0) と関係があります。ごく最近になって、Eclipse 用の Google プラグインが AppEngine 用の DataNucleus プラグインの v2 をサポートしました (これは基本的に AppEngine と DataNucleus Core の間の導管です)。

AppEngine 用の Datanucleus プラグインを v2 にアップグレードすることをお勧めします。Eclipse を使用している場合は簡単です。v1 または v2 を選択できる UI があります。プロジェクトのプロパティに移動し、App Engine の設定を見つけて、「Datanucleus JDO/JPA バージョン」を探してください。

さらに、に変更を加える必要がありますjdo-config.xml。具体的には、次の 1 つのプロパティのみを変更する必要があります。

<property name="javax.jdo.PersistenceManagerFactoryClass" value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/>

SO -- v2 にアップグレードしたら、次のようにキャッシュを指定します (jdoconfig.xml への追加)。

<property name="datanucleus.cache.level2.type" value="jcache"/>
<property name="datanucleus.cache.level2.cacheName" value="NameItWhateverYouWant"/>

この時点で、PersistenceManager を使用して put および get するたびに、キャッシュが自動的に行われるはずです。万歳!

于 2012-12-26T20:05:12.073 に答える
1

L2 キャッシングと GAE/J に関する既知の問題はありません。問題が発生した場合は、Google に報告する必要があります。キャッシュ名を任意の名前に設定します。memcache に入れるものはすべてシリアライズ可能でなければなりません。これは memcache が行うことだからです。はい、datanucleus-cache プラグイン (ver 1.x) が必要で、他の DN jar と同じ場所に配置します。ある日、Google は DN 2.x を使用するように更新します

于 2010-01-06T14:11:52.150 に答える
0

代わりに問題があるようです:私は(JPAで)試しましたが、他の誰かがすでに報告したエラーが発生しました: http://code.google.com/p/datanucleus-appengine/issues/detail?id=163

于 2010-02-08T16:23:52.437 に答える