以前曾经碰到过,使用笨办法解决的,查源代码像Oracle这样的数据库做归档日志的话貌似能知道执行的什么SQL,通过综合观察,可能能帮到你

解决方案 »

  1.   

    Oracle到是能根据进程查到SQL,但不是我需要的,怎么能在weblogic中查到没断连接的事物所执行的sql呢
      

  2.   

    WebLogic顶多能知道活动的连接数,Oracle的企业管理器能看到会话关联的SQL,不过也不容易抓取,问题比较棘手啊
      

  3.   

    使用kill -3 pid或者通过console 的dump看看进程信息这个情况下哪些进程在做什么东西应该可以追踪到具体方法,然后定位相关SQL操作即可
      

  4.   

    把weblogic的jdbc日志打开,在控制台把检测连接池泄露的选项打开,之后可以查看weblogic console日志和jdbc日志,能找到泄漏点。
    另一个方法是在oracle上,好像也能查到,具体方法不记得了。
      

  5.   

    查看weblogic后台日志,一般连接池泄露会有如下提示:A JDBC pool connection leak was detected. A connection leak occurs when a connection obtained from the pool was not closed explicitly by calling close() and then was disposed by the garbage collector and returned to the connection pool.找到日志后可以使用关键字来匹配,如用leak匹配,这样就可以找到未关链接的程序。也可以写个脚本,放在weblogic服务器上,定期扫描一下日志,如果发现泄露就抛出相关错误信息