Hibernate多线程操作数据库,多次操作后报如下错误:
ORA-12519, TNS:no appropriate service handler found
连接池泄露,数据库session被用完了,无法再获得连接
解决方法:
//关闭连接
//like12 modified,bug,20170414,数据库连接池泄露
//SessionFactory().openSession()打开的连接,session.close()不行
//要用SessionFactory().close()才能真正释放数据库中的连接
//session.close();
session.getSessionFactory().close();
以下方法 饮鸩止渴:
http://blog.youkuaiyun.com/zz87250976/article/details/22855563
--当前的连接数
select count(*) from v$process;
--当前session数
select count(*) from v$session;
--数据库允许的最大连接数
select value from v$parameter where name = 'processes';
--数据库允许的最大session数
--# 公式: sessions = processes *1.1 +5
select value from v$parameter where name = 'sessions';
--修改最大连接数:
alter system set processes = 300 scope = spfile;
--查看当前有哪些用户正在使用数据
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;
--查询数据库自启动以来最大的并发数量
select * from v$license;
--查看参数
show parameter processes
show parameter session
参考文档:
http://lijiejava.iteye.com/blog/733971
http://blog.youkuaiyun.com/muzizhuben/article/details/7618832