这就是我的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;
这个脚本结果显示太多连接已打开,因此假设此脚本结果确实表明会话/连接数。如何使用弹簧配置减少它们?因为无论我改变了多少参数,结果都不会改变。
答案 0 :(得分:1)
敏锐地观察....因为maxPoolSize用于定义一个池大小而单个数据源可以包含多个池,在这种情况下没有连接成为
no of pool * maxPoolSize
所以找不到你创造的游泳池