最权威的答案就是日志,或者直接使用sqlplus执行,看看能不能重现,数据库在本地?是不是网络问题,最后补充一句,你们的oracle工程师不给力

解决方案 »

  1.   

    oracle工程师是oracle公司派过来的~
    数据查询1.4秒返回,但是返回的数据分两次回来的,两次的间隔时间是两个整小时
      

  2.   

    我是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