Java 使用JAX-WS的异常\u堆栈\u溢出

Java 使用JAX-WS的异常\u堆栈\u溢出,java,windows,exception,Java,Windows,Exception,基本上我有一个JAW-WS web服务。我从外部应用程序中批量调用了数百万次。在大约2000万次调用后,应用程序崩溃,错误如下。我尝试过升级java版本,在不同的机器上进行尝试,结果都是一样的 发生了不可恢复的堆栈溢出 Java运行时环境检测到一个致命错误: pc=0x7c90e8e5、pid=9396处的异常堆栈溢出(0xc00000fd), tid=9000 JRE版本:6.0_29-b11 Java虚拟机:Java热点(TM)客户端虚拟机 (20.4-b02混合模式,共享windows-x

基本上我有一个JAW-WS web服务。我从外部应用程序中批量调用了数百万次。在大约2000万次调用后,应用程序崩溃,错误如下。我尝试过升级java版本,在不同的机器上进行尝试,结果都是一样的

发生了不可恢复的堆栈溢出

Java运行时环境检测到一个致命错误:

pc=0x7c90e8e5、pid=9396处的异常堆栈溢出(0xc00000fd), tid=9000

JRE版本:6.0_29-b11 Java虚拟机:Java热点(TM)客户端虚拟机 (20.4-b02混合模式,共享windows-x86)有问题的帧:C [ntdll.dll+0xe8e5]

包含详细信息的错误报告文件另存为:U: hs_err_pid9396.log

如果您想提交错误报告,请访问:

我已经读到,异常堆栈溢出是由递归或嵌套函数不能正确返回引起的。我不认为这是我的情况下的问题,因为我只有一个电话,做一些工作和回报。愚蠢的问题,但有没有办法清理堆栈,也许我可以每x小时做一次

我成功地安装了Server2008和最新的JRE。当我在这台机器上运行相同的应用程序时,我得到以下消息。我确信查看此错误比查看上次错误要好,因为这是应用程序将部署到的live box。谢谢

2011年12月28日14:34:58 com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrap

perClass
INFO: Dynamically creating request wrapper Class Professional
Services.jaxws.CleanResponse
28-Dec-2011 14:34:58 com.sun.xml.internal.ws.model.RuntimeModeler getResponseWra
pperClass
INFO: Dynamically creating response wrapper bean Class Professional
Services.jaxws.CleanResponse
Exception in thread "Thread-4" java.lang.OutOfMemoryError: unable to create new
native thread
        at java.lang.Thread.start0(Native Method)
        at java.lang.Thread.start(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(Unk
nown Source)
        at java.util.concurrent.ThreadPoolExecutor.execute(Unknown Source)
        at sun.net.httpserver.ServerImpl$Dispatcher.handle(Unknown Source)
        at sun.net.httpserver.ServerImpl$Dispatcher.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

此异常意味着您在Java中遇到了错误。Java永远不会遇到OS级堆栈溢出,它应该始终抛出自己的StackOverflowException。使用其中一个工具,您所能做的就是尝试更新或更旧的JRE,并将其报告给Oracle。

不确定此答案是否有效,或者您可能已经这样做了。尝试在几次迭代后调用垃圾收集器,仅在所需范围内定义并使用变量,并在使用完成后为其分配空值。

也不要将大数据保留在内存中。我已经使用netbeans执行了应用程序的配置文件,我可以看到,一旦堆达到最大16mb,就会定期调用GC。我也厌倦了在web服务返回之前将变量设为null,但仍然不走运:(…谢谢你的建议。这至少可以帮助我证明我在故障排除步骤方面走在了正确的轨道上。增加堆大小不仅会延迟问题吗?对不起,代码删除是不可能的,但是如果有帮助的话,我已经用更多的信息更新了主要帖子…谢谢哇,真的吗?这意味着我无能为力吗?Th我唯一的解决办法是在6小时后关闭应用程序,然后重新启动它,cron job ot windows scheduler。我有什么办法可以实现这一点吗?还有,我如何找到要使用的JRE版本,即没有此错误的版本。一旦我提交了错误,Oracle会告诉我吗?转到ir bug reporter,看看你看到了什么。一般来说,它们不是很有帮助。你没有太多选择,只能下载几个不同的版本并尝试实验。我在重启方面帮不了你多少忙,打开另一个问题。