数据库连接测试

   最近发现项目有时候连接数据库的时候会报连接拒绝。

   登陆到外网数据库 执行select * from v$session 发现连接已使用了145个。其中有一个用户的连接占用异常高,大约在130到140之间浮动,大多数status字段值为inactive。

   以前一直觉得这个值代表该连接处于空闲状态,如果有新连接访问这些连接还是可以利用,看来这个看法是错误的,于是便写了代码测试下。

  当使用一个连接完毕后如果没有将连接关闭,该连接就会以inactive状态存在且不能被再次利用。

 

 

 

<Context path="" docBase="." debug="0" reloadable="true" crossContext="true">
        <Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"/>
        <ResourceParams name="jdbc/OracleDB">
        <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter>
        <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter>
        <parameter> <name>url</name> <value>jdbc:oracle:thin:@localhost:1521:oracle</value> </parameter>
        <parameter> <name>username</name> <value>scott</value> </parameter>
        <parameter> <name>password</name> <value>tiger</value> </parameter>
        <parameter> <name>maxActive</name> <value>30</value> </parameter>
        <parameter> <name>maxIdle</name> <value>10</value> </parameter>
        <parameter> <name>maxWait</name> <value>2000</value> </parameter>
        <parameter> <name>removeAbandoned</name><value>true</value> </parameter>
        <parameter> <name>removeAbandonedTimeout</name> <value>60</value> </parameter>
        </ResourceParams>
     </Context>

你可能感兴趣的:(apache,oracle,sql,jdbc)