Java 带有JPA部署的Google应用程序引擎应用程序挂起

Java 带有JPA部署的Google应用程序引擎应用程序挂起,java,google-app-engine,jpa,datanucleus,Java,Google App Engine,Jpa,Datanucleus,我有一个java GAE web应用程序,datanucleus是JPA提供商。在我的计算机上本地部署时-部署挂起(需要几分钟)。看看任务管理器,我有一个javac进程正在运行。知道哪里出了问题吗?答案取决于几个参数 如何部署,您使用的是eclipse还是命令行 GAE版本(和GAE/GWT eclipse插件版本) Windows还是Linux 在任何情况下,a都可以帮助查看哪些非守护进程线程被卡住 对于Windows中的命令行部署-挂起后按CtrlBreak以获取线程转储 在Eclips

我有一个java GAE web应用程序,datanucleus是JPA提供商。在我的计算机上本地部署时-部署挂起(需要几分钟)。看看任务管理器,我有一个javac进程正在运行。知道哪里出了问题吗?

答案取决于几个参数

  • 如何部署,您使用的是eclipse还是命令行
  • GAE版本(和GAE/GWT eclipse插件版本)
  • Windows还是Linux
在任何情况下,a都可以帮助查看哪些非守护进程线程被卡住

对于Windows中的命令行部署-挂起后按CtrlBreak以获取线程转储

在Eclipse中,如果有办法在调试模式下部署,请查看调试视图堆栈以获取相同的信息

也可以看到这个答案:

这取决于您使用的平台

  • 窗户
  • linux
  • MacOSX
  • 你可以通过检查信号来检查发生了什么

    发出信号

    用法:
    发送信号
    -向进程发送ctrl-break(十六进制确定)
    你可以通过匿名CVS在
    cvs-d:pserver:anon@www.latenighthacking.com:/code cvsroot co 2003/SendSignal
    
    同意。这是GAE的问题,因为它只需要进行6排列编译,然后应用程序才会部署并显示在浏览器上。我觉得这只是GAE的问题,而不是JPA的问题。我已经开发了一个类似的应用程序,如果你觉得它是因为JPA,你可以检查相应的数据库管理员,看看有多少线程正在为用户打开。如果您似乎发现一些未被垃圾收集,请检查您的代码。否则您可以使用ConnectionPooling机制(使用ORM加速数据库检索)

    我最近通过eclipse在google app engine中部署了我的简单应用程序。它多次未能部署。一段时间后,它成功部署。我可以访问该应用程序。如果它挂起,请停止部署过程并重新部署

    我也经常遇到这种情况。通过取消并回滚,然后再试一次,结果很好。有时甚至需要几次。我怀疑该应用程序启动不正常(有时会被发现[查看日志]),但有时出于某种原因,它会持续很久。你说的“在本地部署”是什么意思?你要么在本地运行,要么部署它——不是两者都有。你能发布你的web.xml和appengine web.xml吗?我猜JPA是无辜的,只是谷歌有点超载。听从史蒂文的建议。这仍然是一个问题吗?我同意@Thilo,我不知道JPA中的什么可能导致javac运行,但GWT肯定会。
    Usage:
    
    SendSignal <pid>
      <pid> - send ctrl-break to process <pid> (hex ok)
    You can get the source via anonymous CVS at
    
    cvs -d :pserver:anon@www.latenighthacking.com:/code-cvsroot co 2003/SendSignal