我们有一个问题,我们的java进程永远挂起, 除非发出Kill -9。在solaris上挂java进程
相同的过程在其他Solaris ENVS成功运行,
Java进程包括从日志和数据开始,做一些处理在数据后结束,虽然单个线程,我们可以看到,代码完全执行并处理所有数据。
但是如果我们做了JPS,我们将永远看到该进程正在运行。 我们正在使用EHcache,用于缓存目的和UCP连接池。 在dB方面,我们有ORACLE RAC结构。
拿了几个Jstacks,永远不能看到过程粘在我的代码。 虽然从线程转储可以看到有很多UCP线程挂在那里。
还添加一个关闭挂钩,并在最后删除它,但有些原因似乎从来没有调用shutdownhook。
由于项目限制,无法粘贴代码。
任何人请帮助
我认为你可以编辑代码,使它看起来不再像代码那样,你仍然可以向我们展示你的意思。这将使它更清楚。 – Rob
另请注意,关闭挂接仅在JVM正常退出或因用户输入而中断时才运行。 “挂起”和“杀死-9”都不是这些情况,所以你不会期望你的钩子运行。 –
必须发出kill -9,因为JVM永远不会正常退出, –