我们正在使用DBCP2来创建连接池,jdk 1.7,Oracle 12c,ojdbc6.jar。 几天前我们的应用程序开始出现ORA-01000错误。
我使用以下查询在Oracle中查找当前打开的游标:
select a.value, s.username, s.sid, s.serial#
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic# and s.sid=a.sid
and b.name = 'opened cursors current';
我一直多次点击同一页面,执行相同的查询。以下是观察结果: 1.当连接池maxTotal = -1(无限制)时,许多连接被打开,而在打开的游标(值)列中,某些连接的值为1或max 2。 例如。查询的示例输出是
value sid
1 1
1 2
1 3
当连接池maxTotal = 10时,只有10个连接被打开(上述查询返回10条记录),并且打开的游标(值)列正在增加。 例如。查询的示例输出是
value sid
1 1
2 2
3 3
1 4
1 5
3 6
我使用的是Spring JDBCTemplate,它关闭了所有结果集,预处理语句和连接。
我的查询是:
任何帮助都会很棒