Согласованное чтение JDO в App-Engine не работает, возможно кеширование?

Сегодня я впервые использую GWT и JDO. Я запускаю его с Eclipse в локальном режиме отладки.

Я делаю следующее:

    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 . Нужно ли мне указывать в конфиге какие-то другие данные о транзакциях? У кого-нибудь получился рабочий jdoconfig.xml ? Или проблема в другом? Некоторое кеширование между ними?

EDIT: Что я пробовал:

  • Установка NontransactionalRead / Write на false
  • Использование того же / другого PersistenceManager с вызовом PMF.get ().getPersistenceManager () несколько раз
  • Использование транзакций
  • ignoreCache = true на PersistenceManager
  • вызов flush и checkConsistency

jdoconfig:

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

I здесь должно быть не хватает чего-то центрального, потому что все подходы терпят неудачу ...

EDIT2: Когда я разделяю задание на две транзакции, журнал сообщает, что транзакция записи завершилась, и затем начинается транзакция чтения. Но он не находит только что сохраненный объект. Всегда указывается Кэш уровня 1 типа "weak" инициализирован . Неделя - это плохо или хорошо?

Около 30% запросов не выполняются ... Может быть, проблема с загрузкой ленивых запросов?

5
задан Franz Kafka 19 December 2011 в 19:25
поделиться