解决方案 »

  1.   

    应该是内存溢出
    5000*15=7w5
    LZ定义的方法中可以进行优化(不知道LZ优化了没有、如果优化了当我灌水)
    优化角度、循环长度放在外面、少定义stratis对象、属性值默认为null
    实在不行再用System.gc()或finallize强制执行finallize方法
    int size = x.size();
    for (int i = 2; i < size; i++) {
     }
      

  2.   

     使用Jvisualvm监控一下应用服务器的内存使用情况,"C:\Program Files\Java\jdk1.8.0_25\bin\jvisualvm.exe" 使用数据库工具检查连接池使用数量
      

  3.   

    根据我的经验,极有可能是数据库的表被锁了。最糟糕的情况是这样的。Thread A 修改了Record A,没有提交事务
    Thread B 修改了Record B,没有提交事务
    Thread A 尝试修改Record B。由于Thread B没有提交事务,将Record B锁定,Thread A将等待Thread B释放锁定(提交或者回归事务)。
    Thread B尝试修改Record A。同杨,Thread B等待Thread A释放锁。
    然后,Thread A和Thread B两个都在等对方,等到天荒地老还在等。。请搜索,“数据库 锁” 或者“数据库 死锁”
      

  4.   

    做个thread dump  分析下发生故障时的线程状态