OutOfMemoryError

软件环境:jdk1.6was 7.0oracle 10gLinux amd64-64堆内存:-Xms1024m -Xmx1536m -Xscmx50m从这些信息来看,造成OOM应该是由于数据库连接的问题,但是不能定位到主要是由于数据库的什么造成的,请大家帮忙看看,具体信息见附件...显示全部

软件环境:jdk1.6was 7.0oracle 10gLinux amd64-64

堆内存:-Xms1024m -Xmx1536m -Xscmx50m

ThreadStatus.png


从这些信息来看,造成OOM应该是由于数据库连接的问题,但是不能定位到主要是由于数据库的什么造成的,请大家帮忙看看,具体信息见附件

附件:

附件图标javacore.20160401.180305.30714.0002.txt (9.15 MB)

附件图标db20160408.rar (44.9 KB)

收起
参与16

查看其它 2 个回答elidongyue的回答

elidongyueelidongyue软件架构设计师中国
从你的javacore中看,你所有的线程都被webcontainer3阻塞了。
从你的那个线程里看
at org/apache/commons/dbcp/BasicDataSource.getConnection(BasicDataSource.java:880(Compiled Code))
at com/hundsun/jres/impl/db/datasource/AbstractDataSource.getConnection(AbstractDataSource.java:118(Compiled Code))
at org/springframework/jdbc/datasource/DataSourceUtils.doGetConnection(DataSourceUtils.java:113(Compiled Code))
at org/springframework/jdbc/datasource/DataSourceUtils.getConnection(DataSourceUtils.java:79(Compiled Code))
at org/springframework/jdbc/core/JdbcTemplate.execute(JdbcTemplate.java:382(Compiled Code))
at org/springframework/jdbc/core/JdbcTemplate.query(JdbcTemplate.java:458(Compiled Code))
现在怀疑,你在一个事务中多次取了数据库联接。而同时你的连接数不足,导致其他的线程被webcontainer3阻塞。具体是什么导致的你这个堆溢出,你要拿heapdump来看。
软件开发 · 2016-04-13
浏览1227
  • heapdump文件取下来了,由于生产是64位的,本机是32位的,无法打开1.6g内存的heapdump文件,最近一直在想办法找64位的机器,大牛能把dump文件发你帮我看看吗?
    2016-04-13
  • bisu  bisu回复 symin
    你传到百度网盘上
    2016-04-14

回答者

elidongyue
软件架构设计师中国
擅长领域: 中间件内存溢出服务器

elidongyue 最近回答过的问题

回答状态

  • 发布时间:2016-04-13
  • 关注会员:3 人
  • 回答浏览:1227
  • X社区推广