几天之后,独立Java应用程序就会死机

时间:2011-05-03 18:35:44

标签: java linux sockets log4j rmi

我们有一个通过RMI连接到另一个Java应用程序的Java App。 这个应用程序有多个实例同时运行,几天后实例就停止处理...... CPU处于0状态,我有一个额外的线程监听一个特定的端口,有助于关闭App。 / p>

我可以连接到特定端口,但应用程序没有做任何事情。

我们使用Log4j来保存日志并且没有写入任何内容,因此不会抛出任何异常。

我们还使用c3p0进行数据库连接。

有人有想法吗?

谢谢,

2 个答案:

答案 0 :(得分:4)

我建议从受影响的应用程序的线程转储开始。 您需要逐个线程地查看正在进行的操作。可能是您有一个长时间运行的线程,或其他阻止其他工作完成的进程。

由于您运行的是linux,因此可以使用以下命令获取线程转储

kill -3 <pid>

如果您在阅读输出时需要帮助,请将其发布在原始问题中。

如果线程转储中没有显示任何内容,则可以查看其他替代方法。

答案 1 :(得分:0)

哼......我建议使用JMetter来强调应用程序并注意可能发生的任何奇怪的事情(例如内存泄漏,死锁等)。还要查看可能会中断程序(或System.exit()调用)的任何异常的代码。最后,如果其他人可以访问计算机,那么检查过程是否未以某种方式手动杀死是有意义的。