Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: zawhtutОтветов: 2

Я получил исключение 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]
  • что-нибудь еще - как трассировка стека? Bozho 13.09.2010
  • Поскольку вы уничтожили все, что позволяет воспроизводиться, найти причину теперь будет непросто :) Pascal Thivent 13.09.2010
  • Конечно, я только что добавил трассировку стека zawhtut 15.09.2010

javagoogle-app-enginejpaapache-flexblazeds

Ответы

Ответ 1 · amorfis

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

Ответ 2 · Chloe

Я считаю, что это связано с этой проблемой со временем, которое требуется для запуска 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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы