MyTimerTask的实现贴出来看一下

解决方案 »

  1.   

    Integer.parseInt(String)可能抛出异常,检查问题会出在这吗?
      

  2.   

    实现的代码很长,不全部贴了,错误已捕获处理,.......
    public class MyTimerTask extends TimerTask {
        static Logger logger = Logger.getLogger(MyTimerTask.class);    public void run() {
            try {
                .......
            } catch (Exception ae) {
                logger.error(ae.getMessage());
            }
        }
    }
      

  3.   

    系统时间若有改变,timer就会挂掉异常你捕获了,应该问题不在这强烈建议换成ScheduledExecutorService  executorService = Executors.newScheduledThreadPool(size);用这个来调度,就不会有timer的乱七八糟的问题
      

  4.   


    如果大概知道是哪段代码有问题。。那就不用分析了。。直接改bug
      

  5.   

    debug是很好做的了 做起来比较有成就感 因为从来都可以找到错误原因
      

  6.   


    试过了,spring+quatrz也试过了,都一样.............
      

  7.   


    是卡住不动了,看来只有试试MemoryAnalyzer了,学习看看怎么用吧.........
      

  8.   

    最后还是自己解决了:
    Timer timer = new Timer();
    timer.schedule(new MyTimerTask(), theDate, Integer.parseInt(interval) * 60 * 1000);这个MyTimerTask()里启动了20多个线程,照理说每个线程执行完成后,MyTimerTask也就结束了,实际情况是每个线程,都要对远程机器上的数据库进行连接,取数,结果,就有个别线程挂死了,时间长了,程序就崩溃了。对MyTimerTask进行改进,在线程正常运行需要的时间后,检测线程是否完成,如果没有完成,就强制终止线程。这样运行一段时间观察,一切都正常了。
      

  9.   


    楼主,我也是跟你一样要定时对远程机器进行连接取值,然后启动一段时间后,会报错说连接关闭,求楼主帮忙.错误1:java.io.IOException: Sorry, this connection is closed.
    错误2:java.io.IOException: Could not open channel (The connection is being shutdown)这是最近从日志文件中抛出的异常信息