解决方案 »

  1.   

    你确定连进程都没啦!这样的话,看看是不是操作系统把java进程结束了,如果不是,则要检查代码了,看看那里有结束进程的代码,类似于System.exit(n)或者Runtime.getRuntime().exit(n)的代码
      

  2.   

    你好,确定是进程都没有了,我是通过命令行窗口启动的,退出时这个窗口都没了,内存也都掉下来了。另外代码里确实是有System.exit的代码,但是没有走到这里,因为这些地方如果走到都有log的。再问下如何查看操作系统结束java了,是在系统日志中查看吗?非常感谢你的回答^_^
      

  3.   

    我觉得是程序有bug吧,一般进程不会无缘无故自己被干掉的
      

  4.   

    嗯,我也奇怪,这个情况发生两三次了,而且是没有任何异常,如果是程序上的bug,应该如何定位?
      

  5.   

    这种问题bug ,难找啊
      

  6.   

    嗯,我也奇怪,这个情况发生两三次了,而且是没有任何异常,如果是程序上的bug,应该如何定位?这种半点信息都没有的问题,说实在的很难定位。从进程消息这个线索来看,一般要不是你自己程序把自己干掉了,要不是主线程抛出异常导致进程异常退出。建议你从这两个方向去找找问题吧
      

  7.   

    嗯嗯,一些关键性的地方我的log级别都是记录的了,只要一些上层逻辑的细节之处还是用的trace级别
      

  8.   

    这样的问题确实很难追踪,尝试用java的性能分析工具跟踪一下jprofile 好像有这个东西 ,看一下是不是有大量对象没释放,网络socket没释放的情况,如果有资源没释放,久了就会导致资源耗尽。 原理linux下遇到过这样的问题。 有dump可以分析。
      

  9.   

    嗯嗯,是挺难找,你觉得可不可能是人家的云服务器的问题,之前有出现过系统宕机问题,对是操作系统自动重启了,具体重启原因,服务器厂商那边还在查,说可能是我安装了什么第三方的软件导致的,但是我只安装了常规的软件,winrar什么的,毕竟是服务器我也没敢装其他的。我们程序有几个版本,其中香港机房版本也是用的同一套程序,但是服务器是windows 2003 企业版的,那边也有好几组服务器,而且香港的机房的机器上程序业务负载比北京机房的要大,这些服务器都从来没出现过我说这个问题。
      

  10.   


    嗯嗯,我起初也怀疑是cpu或是内存问题,但是看nagios的日志,这个机器的cpu基本上不超过5%(业务负载很小),总过16g的内存,占用一直保持在10g左右
      

  11.   

    看LZ说在某个时间点会自动退出,会不会是某个时间点的定时任务造成的
    最好是批量排查下,在某个时间点用jstrack打下当前的堆栈,看看
      

  12.   

    如果是进程被杀,应该有java core和jave thread dump,找到这两个文件就好分析了
      

  13.   


    喔喔,请问java core和java thread dump分别什么地方