2012-10-12 50 views
0

我们有一个问题,我们的java进程永远挂起, 除非发出Kill -9。在solaris上挂java进程

相同的过程在其他Solaris ENVS成功运行,

Java进程包括从日志和数据开始,做一些处理在数据后结束,虽然单个线程,我们可以看到,代码完全执行并处理所有数据。

但是如果我们做了JPS,我们将永远看到该进程正在运行。 我们正在使用EHcache,用于缓存目的和UCP连接池。 在dB方面,我们有ORACLE RAC结构。

拿了几个Jstacks,永远不能看到过程粘在我的代码。 虽然从线程转储可以看到有很多UCP线程挂在那里。

还添加一个关闭挂钩,并在最后删除它,但有些原因似乎从来没有调用shutdownhook。

由于项目限制,无法粘贴代码。

任何人请帮助

+5

我认为你可以编辑代码,使它看起来不再像代码那样,你仍然可以向我们展示你的意思。这将使它更清楚。 – Rob

+0

另请注意,关闭挂接仅在JVM正常退出或因用户输入而中断时才运行。 “挂起”和“杀死-9”都不是这些情况,所以你不会期望你的钩子运行。 –

+0

必须发出kill -9,因为JVM永远不会正常退出, –

回答

-1

我的客户面临与挂在Solaris上的安装程序相同的问题。当安装程序在调试模式下运行时,我们意识到嵌入了安装程序的Java挂起。如果您有任何人找到答案,请发帖。

+0

这不是一个答案。至多这是一条评论。 –

+0

是真的。我无法在上面添加评论。 – Shiva