前段时间,项目启动的时候报数据库连接错误,详见如下错误:
错误内容:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.6.36.90)(PORT=1523)))(CONNECT_DATA=(SID=utf10gt1)(SERVER=DEDICATED)))
有时候连得上数据库,有时候又连不上。
可能是数据库上当前的连接数目已经超过了它能够处理的最大值。
lsnrctl stat
看看你的实例状态是不是BLOCK
如果是就参照下面,
多半是应用出了问题,比如建立连接之后不关闭。
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;
可能是数据库上当前的连接数目已经超过了它能够处理的最大值。
lsnrctl stat
看看你的实例状态是不是BLOCK
如果是就参照下面,
多半是应用出了问题,比如建立连接之后不关闭。
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;
【注意:以上SQL语句的执行需要DBA权限】