javax.persistence.PersistenceException: не удалось сбросить транзакцию

Я получил исключение JPA

«javax.persistence.PersistenceException: не удалось сбросить транзакцию»

Затем я удалил локальное хранилище данных (datastore-indexes-auto.xml и local_db.bin) из своей системы. Воссоздал все данные снова, и после этого исключение исчезло. Я хочу знать, что только что произошло?

Ниже приведена трассировка стека

[RPC Fault faultString="org.springframework.orm.jpa.JpaSystemException : Transaction failed to flush; nested exception is javax.persistence.PersistenceException: Transaction failed to flush" faultCode="Server.Processing" faultDetail="null"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[C:\autobuild\3.5.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:290]
at mx.rpc::Responder/fault()[C:\autobuild\3.5.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:58]
at mx.rpc::AsyncRequest/fault()[C:\autobuild\3.5.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:103]
at NetConnectionMessageResponder/statusHandler()[C:\autobuild\3.5.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:581]
at mx.messaging::MessageResponder/status()[C:\autobuild\3.5.0\frameworks\projects\rpc\src\mx\messaging\MessageResponder.as:222]

person zawhtut    schedule 13.09.2010    source источник
comment
что-нибудь еще - как трассировка стека?   -  person Bozho    schedule 13.09.2010
comment
Поскольку вы уничтожили все, что позволяет воспроизводиться, найти причину теперь будет непросто :)   -  person Pascal Thivent    schedule 13.09.2010
comment
Конечно, я только что добавил трассировку стека   -  person zawhtut    schedule 15.09.2010


Ответы (2)


Я не знаю google-app-engine, но я предполагаю, что у вас есть ограниченное пространство в БД? Может быть, вам просто не хватило места?

person amorfis    schedule 13.09.2010
comment
Спасибо за ответ. Возможно, но у меня не так много данных. - person zawhtut; 15.09.2010

Я считаю, что это связано с этой проблемой со временем, которое требуется для запуска AppEngine, что приводит к ошибкам тайм-аута.

http://googleappengine.blogspot.com/2009/12/request-performance-in-java.html

Если вы следили за группой среды выполнения Java App Engine, возможно, вы заметили обсуждение производительности среды выполнения Java. Многие из вас жаловались на труднопредсказуемые исключения DeadlineExceededException или неожиданно медленные запросы, использующие большое количество ресурсов ЦП. У этих проблем часто одна и та же основная причина: App Engine готовит новый экземпляр вашего кода для ответа на входящий запрос.

Об этом сообщает Grails http://jira.grails.org/browse/GPAPPENGINE-67

Существует открытая проблема, которую Google до сих пор не исправил, даже спустя несколько лет.

https://code.google.com/p/googleappengine/issues/detail?id=7706

По мере того, как проект Java становится все более сложным и требует загрузки большего количества классов и jar-файлов при запуске, время запуска экземпляра сокращается до такой степени, что экземпляры превышают крайний срок запроса пользователя, равный 60 секундам.

Вы МОЖЕТЕ обойти это, оставив экземпляр бездействующего в памяти, чтобы ему не приходилось раскручиваться.

https://developers.google.com/appengine/docs/adminconsole/performancesettings#scheduler

https://appengine.google.com/settings

person Chloe    schedule 24.02.2014