我现在用JAVA做的一个Web项目,中间件使用的Weblogic,但是最近我的Weblogic里面查看连接数
总是提示配置的连接池连接被拿完了,没有释放,从Weblogic里面可以看到,我配的60个连接全没了!
我想看看Oracle里面的会话是不是也有60个在执行,我该如何能直观的看到呢?我想的是,如果我Oracle里面也是有60个连接正在等待,可能就是程序某个地方,在执行的时候死锁了表,导致了这种那情况,请问各位我该如何查看?谢谢大家帮忙啊

解决方案 »

  1.   

    select sid,status,sql_id,event from v$session where module like '%JDBC%' and username='USERNAME';
    根据你的条件查询出JDBC连接的当前等待事件。如果连接是空闲的,那主要问题是程序里没有关闭释放数据库连接,也就是连接泄漏的问题。
      

  2.   

    首先谢谢你的解答,
    请问 module 这个字段是干什么用的呢?另外, 我想知道查询出来的连接是为什么被占用了,这样可以看到吗 具体 V$session 里面的好多字段都不明白
      

  3.   

    如果status为INACTIVE,说明这个连接是空闲的,JDBC连接池满的问题,一般都是由于程序中没有关闭连接引起的。