Jdbc dbcp以高打开/关闭速率生成到Oracle DB的hugh连接数

Jdbc dbcp以高打开/关闭速率生成到Oracle DB的hugh连接数,jdbc,connection,apache-commons-dbcp,jdbc-pool,Jdbc,Connection,Apache Commons Dbcp,Jdbc Pool,我的应用程序使用了DBCP1.4,hibernate和spring,连接到oracle。 在几百个请求/秒的普通负载下,我获得了太多到DB的TCP连接(导致在DB端使用过多的系统进行身份验证,对于16核机器,95%的cpu)。 每秒超过80个连接 每个连接只提供少量来自客户端的请求和FIN。每个会话仅15-20毫秒。 我想调整DBCP或oracle驱动程序(不知道是哪个驱动程序造成的)以延长每个连接的时间(至少考虑5-10秒) 我怎么能得到这个? DBCP中的池设置为 <prope

我的应用程序使用了DBCP1.4,hibernate和spring,连接到oracle。 在几百个请求/秒的普通负载下,我获得了太多到DB的TCP连接(导致在DB端使用过多的系统进行身份验证,对于16核机器,95%的cpu)。 每秒超过80个连接 每个连接只提供少量来自客户端的请求和FIN。每个会话仅15-20毫秒。 我想调整DBCPoracle驱动程序(不知道是哪个驱动程序造成的)以延长每个连接的时间(至少考虑5-10秒) 我怎么能得到这个? DBCP中的池设置为

    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>     
    <property name="initialSize" value="10"/>
    <property name="maxActive" value="100"/>
    <property name="maxIdle" value="100"/>
    <property name="maxWait" value="5000"/>
    <property name="removeAbandoned" value="true"/>
    <property name="removeAbandonedTimeout" value="60"/>
    <property name="logAbandoned" value="false"/>
    <property name="validationQuery" value="select 1 from dual"/>
    <property name="testOnBorrow" value="true"/>
    <property name="testWhileIdle" value="true"/>
    <property name="numTestsPerEvictionRun" value="2"/>
    <property name="timeBetweenEvictionRunsMillis" value="-1"/>
    <property name="minEvictableIdleTimeMillis" value="600000"/>
    <property name="validationQueryTimeout" value="5"/>
    <property name="poolPreparedStatements" value="false"/>

spring的线程执行器设置为-

     <property name="connectionGetterExecutor">
        <bean class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
            <property name="corePoolSize" value="15"/>
            <property name="maxPoolSize" value="100"/>
            <property name="queueCapacity" value="10000"/>
        </bean>
    </property>