今日はGWTとJDOを初めて使用しています。 Eclipseでローカルデバッグモードで実行しています。私はすでに私のjdoconfig.xml
に<property name="datanucleus.appengine.datastoreReadConsistency" value="STRONG" />
を設定App-Engine JDOの一貫した読み込みがうまくいかず、キャッシュできますか?
public Collection<MyObject> add(MyObject o) {
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(o);
Query query = pm.newQuery(MyObject.class);// fetch all objects incl. o. But o only sometimes comes...
List<MyObject> rs = (List<MyObject>) query.execute();
ArrayList<MyObject> list= new ArrayList<MyObject>();
for (MyObject r : rs) {
list.add(r);
}
return list;
} finally {
pm.close();
}
}
:
私は、次のことを行います。私は設定で他のトランザクションのものをいくつか設定する必要がありますか?誰かが働いていたのですかjdoconfig.xml
?それともどこか別の問題ですか?いくつかのキャッシングがありますか?
EDIT:私が試してみました物事:NontransactionalReadは/ PMF.get().getPersistenceManager()
複数回
PersistenceManager
かかわらを使用して偽- を
- ignoreCache = true on
PersistenceManager
flush
および012私はここに、中央何かが欠けする必要があります<persistence-manager-factory name="transactions-optional"> <property name="datanucleus.appengine.datastoreReadConsistency" value="STRONG" /> <property name="javax.jdo.PersistenceManagerFactoryClass" value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/> <property name="javax.jdo.option.ConnectionURL" value="appengine"/> <property name="javax.jdo.option.NontransactionalRead" value="true"/> <property name="javax.jdo.option.NontransactionalWrite" value="true"/> <property name="javax.jdo.option.RetainValues" value="true"/> <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/> </persistence-manager-factory>
すべてのアプローチが失敗するので...
EDIT2:
jdoconfig私は2つのトランザクションに仕事を分割すると、ログは言います書き込みトランザクションが終了してから、読み取りトランザクションが開始されます。しかし、それはちょうど拒否されたオブジェクトを見つけることはありません。それは常にLevel 1 Cache of type "weak" initialised
と言います。週は悪くて良い?
これは、間違ったリクエストの約30%です...怠惰なクエリ読み込みの問題がありますか?
私も同じ問題に直面しています。私はいくつかのオブジェクトを私のアプリを通して追加しますが、結果に反映されないこともあります。 –
オブジェクトはクエリ実行時にデータストアにありますか?明らかに、ログはそれをあなたに伝えます。これがGWTとどう関係しているのかは不明です... – DataNucleus
ログはどこにありますか?GWTと何が関係していますか?それはGWTプロジェクトなので、たくさんあります。私はGWTとアプリエンジンとの間に明確な線を引くことはできないので、私はgoogleから来るすべてのGWTを呼び出します。そして、なぜキャッシュが非常に混乱して、同じインスタンスが書き込まれたデータを読み取ることさえできないのでしょうか?同じクライアントに対して常に一貫性のあるjdoconfig.xmlを投稿できますか? –