数据库最大连接数原理

数据库最大连接数原理

1、JAVA做一个循环,每做一次事务(CRUD)加一个连接,一个连接相当于占2M内存。
50秒后自动释放。
如果超过最大连接数报错如下:
ORA-12519: TNS:no appropriate service handler found 解决  

有时候连得上数据库,有时候又连不上.

可能是数据库上当前的连接数目已经超过了它能够处理的最大值.


select count(*) from v$process --当前的连接数
select value from v$parameter where name = 'processes' --数据库允许的最大连接数
修改最大连接数:
alter system set processes = 300 scope = spfile;
重启数据库:
shutdown immediate;
startup;
--查看当前有哪些用户正在使用数据
SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;

连接数配置在:applicationcontext.xml中
另一种解决办法:直接用存储过程,一个存储过程只占一个连接。

查看当前最大连接数:
BasicDataSource dataSource = (BasicDataSource)SpringTools.getBean("dataSource");
System.out.println(dataSource.getNumActive());

你可能感兴趣的:(数据库最大连接数原理)