1、JAVA做一個(gè)循環(huán),每做一次事務(wù)(CRUD)加一個(gè)連接,一個(gè)連接相當(dāng)于占2M內(nèi)存。
50秒后自動(dòng)釋放。
如果超過(guò)最大連接數(shù)報(bào)錯(cuò)如下:
ORA-12519: TNS:no appropriate service handler found 解決
有時(shí)候連得上數(shù)據(jù)庫(kù),有時(shí)候又連不上.
可能是數(shù)據(jù)庫(kù)上當(dāng)前的連接數(shù)目已經(jīng)超過(guò)了它能夠處理的最大值.
select count(*) from v$process --當(dāng)前的連接數(shù)
select value from v$parameter where name = 'processes' --數(shù)據(jù)庫(kù)允許的最大連接數(shù)
修改最大連接數(shù):
alter system set processes = 300 scope = spfile;
重啟數(shù)據(jù)庫(kù):
shutdown immediate;
startup;
--查看當(dāng)前有哪些用戶(hù)正在使用數(shù)據(jù)
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;
連接數(shù)配置在:applicationcontext.xml中
另一種解決辦法:直接用存儲(chǔ)過(guò)程,一個(gè)存儲(chǔ)過(guò)程只占一個(gè)連接。
查看當(dāng)前最大連接數(shù):
BasicDataSource dataSource = (BasicDataSource)SpringTools.getBean("dataSource");
System.out.println(dataSource.getNumActive());