web项目的一个方法运行5个小时之后

minghzhang 2015-01-12 07:25:03
本人现在遇到了一个非常奇怪的问题:
一个web项目采用spring+springmvc+mybatis,现在的需求是给每个客户经理进行考核,客户经理人数在5000左右,每个客户经理考核的类型大概15条左右,考核就是往考核得分表里插入数据,使用mybatis的批量插入,每次插入50条,项目启动,点击考核按钮,后台运行考核方法,并在控制台打印出相应的数据(主要是次数统计和sql的日志),程序运行了接近5个小时的时候,突然控制台不在打印日志了,考核得分表里的数据也不再增加,好像是阻塞的一样,这时候新打开一个页面,输入项目的路径,一直在提示正在等待localhost的相应,无法进入项目页面,这个问题困扰了我好多天了,恳请了解的朋友解答,跪求!!!
...全文
299 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这个就要根据具体环境分析了,原因很多,以上说的都是起因,但是具体什么样的,还得你自己分析,看日志信息
ArayChou 2015-01-13
  • 打赏
  • 举报
回复
根据我的经验,极有可能是数据库的表被锁了。最糟糕的情况是这样的。 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两个都在等对方,等到天荒地老还在等。。。。。 请搜索,“数据库 锁” 或者“数据库 死锁”
tianfang 2015-01-13
  • 打赏
  • 举报
回复
使用Jvisualvm监控一下应用服务器的内存使用情况,"C:\Program Files\Java\jdk1.8.0_25\bin\jvisualvm.exe" 使用数据库工具检查连接池使用数量
程序袁_哈哈 2015-01-13
  • 打赏
  • 举报
回复
学习来了。。。 看看大神们怎么解决未知问题。。。 估计是锁表了。。。。。。
The_end90 2015-01-13
  • 打赏
  • 举报
回复
做个thread dump 分析下发生故障时的线程状态
liangtu 2015-01-13
  • 打赏
  • 举报
回复
加入一些日志。 执行前,被插入表里有多少记录,每隔一段时间,再打印一次。
liangtu 2015-01-12
  • 打赏
  • 举报
回复
增加一个监控页面,监控内存等的使用情况。
奄灬苟且偷生 2015-01-12
  • 打赏
  • 举报
回复
应该是内存溢出 5000*15=7w5 LZ定义的方法中可以进行优化(不知道LZ优化了没有、如果优化了当我灌水) 优化角度、循环长度放在外面、少定义stratis对象、属性值默认为null 实在不行再用System.gc()或finallize强制执行finallize方法 int size = x.size(); for (int i = 2; i < size; i++) { }

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧