C3po创建了太多的连接

时间:2014-06-04 12:19:33

标签: java oracle c3p0 spring-jdbc

这就是我的c3po Spring配置的样子;

    <property name="idleConnectionTestPeriod" value="120" />
    <property name="maxIdleTime" value="1800" />
    <property name="maxPoolSize" value="2" />
    <property name="unreturnedConnectionTimeout" value="600" /> 
    <property name="numHelperThreads" value="10" />
    <property name="maxStatementsPerConnection" value="1" />

我尝试监控与DB建立的连接数,因此我在重新启动应用程序后对Oracle DB运行此脚本;

select
   substr(a.spid,1,9) pid,
   substr(b.sid,1,5) sid,
   substr(b.serial#,1,5) ser#,
   substr(b.machine,1,6) box,
   substr(b.username,1,10) username,

   substr(b.osuser,1,8) os_user,
   substr(b.program,1,30) program
   from v$session b, v$process a
   where
   b.paddr = a.addr and type='USER' order by spid;

这个脚本结果显示太多连接已打开,因此假设此脚本结果确实表明会话/连接数。如何使用弹簧配置减少它们?因为无论我改变了多少参数,结果都不会改变。

1 个答案:

答案 0 :(得分:1)

敏锐地观察....因为maxPoolSize用于定义一个池大小而单个数据源可以包含多个池,在这种情况下没有连接成为

no of pool * maxPoolSize

所以找不到你创造的游泳池