javax.persistence.PersistenceException:事务未能刷新

时间:2010-09-13 07:43:32

标签: java flex google-app-engine jpa blazeds

我得到了JPA例外

  

“javax.persistence.PersistenceException:   交易未能刷新“

然后我从我的系统中删除了本地数据存储区(datastore-indexes-auto.xml和local_db.bin)。重新创建了所有数据,之后,异常消失了。我想知道刚刚发生了什么事?

以下是stacktrace

[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]

2 个答案:

答案 0 :(得分:0)

我不知道google-app-engine,但我认为你在DB中有一些有限的空间?也许你刚用完了空间?

答案 1 :(得分:0)

我认为这是因为AppEngine启动所需的时间问题,从而导致超时错误。

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

  

如果您一直关注App Engine Java运行组,则可以   已经注意到有关Java运行时性能的一些讨论。   你们中许多人都抱怨难以预测   DeadlineExceededExceptions,或意外缓慢使用a的请求   CPU量很大。这些问题通常具有相同的根本原因:App   引擎正在准备一个新的代码实例来响应传入   请求。

Grails http://jira.grails.org/browse/GPAPPENGINE-67

报道了这一点

有一个未解决的问题,即使在几年之后,谷歌还没有解决。

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