Oracle错误:
TNS:listener could not find available handler with matching protocol stack
问题描述:
Listener进程数已满。
解决办法:
1. 在Oracle客户端工具上执行:
a)进程
select value from v$parameter where name = 'processes';
得到数值就是Listener的最大进程数。
然后执行:
select count(*) from v$process;
得到的数值就是目前已经占用的进程数
当前使用的进程数接近最大进程数,就危险了。
b)会话
同样的方法:
select value from v$parameter where name = 'sessions';
得到允许最大会话数。
select count(*) from v$session;
当前会话数。
2.检查连接数据库的程序,哪些代码没有释放数据库连接器,或者被循环调用;
也有可能是代码缺陷导致对象初始化器循环访问数据库。
在出现问题的数据访问关键代码上设断点,是否会循环调用了。
3.若不是上述原因导致,修改连接器最大值processes和sessions,比如:
alter system set processes=200 scope=spfile;
alter system set sessions=300 scope=spfile;
然后重启数据库服务
参考:http://tianzt.blog.51cto.com/459544/203699