BUG,ORA-12519,数据库连接池泄露,session.close()不行,要用sessionFactory.close()

本文介绍了在使用Hibernate进行多线程操作数据库时遇到的连接池泄漏问题及ORA-12519错误,并提供了正确的解决方案。文章强调了SessionFactory的正确关闭方式对于避免连接池耗尽的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值