2013-03-11 4 views
8

appengine에서 google cloud sql을 사용하고 있습니다.API 호출 datastore_v3.Put()에 대한 요청이 너무 큼

Datasotre API를 사용하지 않아도 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 문서에 따르면 데이터 크기 제한은 60MB에서 제공되는 16MB라고 생각합니다.

내 데이터 크기는 약 1MB이고 내 응답은 확실히 1 분 미만입니다. 작은 데이터로 시도하면 모든 것이 올바르게 작동합니다.

왜 예외가 발생합니까? 문제가 무엇입니까? Google 앱 엔진의 버그입니까? 또는 크기 제한이 있습니까? 문서화 된 곳은 어디입니까? 또는 무엇을 ?

+1

데이터 스토어에는 엔티티 당 1Mb의 제한이 있습니다. Cloud SQL을 사용 하시겠습니까? 또한 세션은 Datastore를 사용하므로 세션에서 1Mb 이상을 저장하면이 예외가 발생할 수 있습니다. –

+0

@PeterKnego Cloud SQL을 확실히 사용합니다. 세션별로 HttpSession을 의미합니까? – Robert

+1

예, 구체적으로 GAE 세션 지원 : https://developers.google.com/appengine/docs/java/config/appconfig#Enabling_Sessions –

답변

9

이것은 후드 아래에서 GAE Datastore를 사용하여 세션 개체를 저장하는 GAE sessions 때문에 발생합니다. 이 예외는 1Mb 이상의 데이터가 세션에 포함되는 경우에 Throw됩니다.

+0

어떻게 문제를 해결 했습니까? 세션에서 데이터를 제거했습니다. – qgicup

+0

2 년이 지났는데, 정확히 어떻게 해결했는지 기억이 안납니다. 세션에서 데이터를 삭제했을 수 있습니다. 매번 데이터베이스에서 다시로드하십시오. 또는 데이터를 두 개의 객체로 나누었습니다. 각 객체는 1MB 미만이고 서로 다른 두 개의 키를 사용하여 세션에 저장합니다. – Robert