2013-03-11 12 views
8

मैं ऐपेंगिन के साथ Google क्लाउड एसक्यूएल का उपयोग कर रहा हूं।एपीआई कॉल का अनुरोध datastore_v3.Put() बहुत बड़ा था

मुझे com.google.apphosting.api.ApiProxy$RequestTooLargeException: The request to API call datastore_v3.Put() was too large. मिल रहा है, हालांकि मैं डेटासेट एपीआई का उपयोग नहीं कर रहा हूं।

मुझे लगता है कि दस्तावेज़ https://developers.google.com/appengine/docs/java/cloud-sql/developers-guide#access_limits के अनुसार लगता है कि 60 सेकंड में डेटा आकार सीमा 16 एमबी है।

मेरा डेटा आकार लगभग 1 एमबी है और मेरी प्रतिक्रिया निश्चित रूप से 1 मिनट से कम है। यदि मैं छोटे डेटा के साथ प्रयास करता हूं, तो सब ठीक से काम करता है।

तो, अपवाद क्यों फेंक दिया गया है? समस्या क्या है ? क्या यह Google ऐप इंजन में एक बग है? या क्या आकार-सीमा है, यह कहां दस्तावेज है? और क्या ?

+1

डेटास्टोर की प्रति इकाई 1 एमबी की सीमा है। क्या आप वाकई क्लाउड एसक्यूएल का उपयोग करते हैं? यह भी ध्यान रखें कि सत्र डेटास्टोर को हुड के नीचे उपयोग करते हैं, इसलिए यदि आप सत्र में 1 एमबी से अधिक बचत करते हैं तो आपको यह अपवाद मिल सकता है। –

+0

@PeterKnego मैं निश्चित रूप से क्लाउड एसक्यूएल का उपयोग करता हूं। सत्रों के अनुसार, क्या आपका मतलब है एचटीपीशन? – Robert

+1

हां, विशेष रूप से जीएई सत्र समर्थन: https://developers.google.com/appengine/docs/java/config/appconfig#Enabling_Sessions –

उत्तर

9

यह GAE sessions की वजह से होता है, जो हुड के तहत सत्र वस्तुओं को सहेजने के लिए जीएई डेटास्टोर का उपयोग करता है। सत्र में 1 एमबी से अधिक डेटा संग्रहीत होने पर यह अपवाद फेंक दिया जाता है।

+0

आपने इस मुद्दे को कैसे हल किया है? आपने किसी भी तरह से सत्र से डेटा हटा दिया? – qgicup

+0

यह दो साल हो गया है, मुझे याद नहीं है कि मैंने इसे कैसे हल किया। मैंने सत्र से डेटा हटा दिया हो सकता है; हर बार डेटाबेस से इसे पुनः लोड करें। या मैंने डेटा को दो वस्तुओं में बांटा है; प्रत्येक वस्तु 1 एमबी से कम है और सत्र में उन्हें दो अलग-अलग कुंजी के साथ स्टोर करती है। – Robert

संबंधित मुद्दे