आज पहली बार मैं जीडब्ल्यूटी और जेडीओ का उपयोग कर रहा हूं। मैं इसे स्थानीय डीबग मोड में ग्रहण के साथ चला रहा हूं।ऐप-इंजन जेडीओ लगातार पढ़ने काम नहीं कर रहा है, शायद कैशिंग?
मैं निम्नलिखित काम करते हैं:
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
में <property name="datanucleus.appengine.datastoreReadConsistency" value="STRONG" />
निर्धारित किया है। क्या मुझे कॉन्फ़िगरेशन में कुछ अन्य लेनदेन सामान सेट करना है? क्या किसी को jdoconfig.xml
काम कर रहा था? या कहीं और समस्या है? कुछ कैशिंग के बीच में?
संपादित करें: बातें मैं कोशिश की है:
- स्थापना NontransactionalRead/लिखें झूठी
- के लिए एक ही/एक अलग
PersistenceManager
हालांकि बुलाPMF.get().getPersistenceManager()
कई बार - का उपयोग करते हुए लेन-देन का उपयोग
- ignoreCache =
PersistenceManager
- पर
flush
और 012 पर सही
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>
मैं कुछ केंद्रीय यहाँ क्योंकि सभी दृष्टिकोण असफल लापता जाना चाहिए ...
EDIT2: जब मैं दो लेनदेन में काम विभाजित लॉग कहते हैं कि लेखन लेनदेन खत्म हो गया और फिर पढ़ा गया लेनदेन शुरू होता है। लेकिन यह सिर्फ परिपक्व वस्तु नहीं मिलती है। यह हमेशा Level 1 Cache of type "weak" initialised
कहता है। सप्ताह खराब है या अच्छा है?
यह लगभग 30% अनुरोध गलत है ... क्या मैं कुछ आलसी क्वेरी लोडिंग समस्या हो सकता हूं?
मैं भी यही समस्या का सामना। मैं अपने ऐप के माध्यम से कुछ ऑब्जेक्ट्स जोड़ता हूं, लेकिन वे परिणाम में कभी-कभी प्रतिबिंबित नहीं होते हैं, कभी-कभी, और कभी-कभी वे करते हैं! –
और ऑब्जेक्ट क्वेरी करने के समय डेटास्टोर में है? जाहिर है कि लॉग आपको बताएगा। जीडब्ल्यूटी के साथ इसका क्या संबंध है अस्पष्ट है ... – DataNucleus
मुझे लॉग कहां मिल सकता है?जीडब्ल्यूटी के साथ क्या करना है? बहुत, क्योंकि यह एक जीडब्ल्यूटी परियोजना है। मैं वास्तव में जीडब्ल्यूटी और ऐप-इंजन के बीच एक स्पष्ट रेखा नहीं खींच सकता इसलिए मैं Google से आने वाली सभी चीज़ों को जीडब्ल्यूटी कहता हूं। और कैशिंग इतनी गड़बड़ क्यों हो जाएगी कि वही उदाहरण सिर्फ लिखे गए डेटा को भी पढ़ नहीं सकता? क्या आप एक jdoconfig.xml पोस्ट कर सकते हैं जो हमेशा एक ही ग्राहक के लिए सुसंगत रहेगा? –