解决方案 »

  1.   

    经过oracle技术分析得知,未有死锁现象,而且线程执行的全是查询,
    oracle小版本号为11.2.0.3,jdk版本是1.5.0_22
      

  2.   

    没有,是一个查询,查询耗时1.4秒,但是查询后数据的返回是分两次,两次数据返回的的间隔时间是两个整小时
    当时thread dump 日志:
      

  3.   

    我是LZ的同事,补充一下我们目前看到的现象:1. 应用和数据库之间有防火墙,但设置了36小时超时由于应用每天定时重启,所以不会是防火墙把连接掐断的。且网络硬件及防火墙的日志都没报错,应该不是网络的问题
    2. hang住的查询经DBA确认,当时已执行完毕,用时1.44秒,通过AWR报告也可以看出,没有执行超过1分钟的SQL
    3. 通过网络监控抓包工具,我们分析了应用和数据库之间的所有网络包(即异常发生的前后两分钟和2小时后数据再次返回的前后两分钟),发现包含SQL的语句发送至数据库后1.5秒即发回response的结果集(实际上是JDBC driver去取),但没有取完就停住了。2小时后,oracle回了一个心跳包(keep alive),JDBC driver继续取结果集直至完成。hang住的应用thread dump可见4L
      

  4.   

    换其他工具查询是否还存在这个问题呢?
    根据目前状况,感觉不像是数据库造成的
    你的问题是在大数据量接收时发生的,重点排查下jdbc的超时设置的原因
      

  5.   

    不用JDBC连接 用odbc试试。