ORA-12520: TNS:监听程序无法为请求的服务器类型找到可用的处理程序

问题描述:

用 PLSQL 登录 oracle 数据库报错,提示:ORA-12520: TNS:监听程序无法为请求的服务器类型找到可用的处理程序,截图如下:

 

 

远程oracle服务器端,Sqlplus登陆oracle,也报错:ORA-00020:maximum number of processes (300) exceeded,截图如下:

 

 

 

解决方法:

原因:根据提示得知,是Processes过多,超出最大值。因此需要将oracle的最大process调大:

重启oracle,sqlplus重新登陆,查目前的process

 

sqlplus / as sysdba

show parameter processes;(300)

alter system set processes=1000scope=spfile;(调整为1000)

重启oracle服务。到这里问题就解决了。

附:

此问题出现的背景是:使用Oracle 的 HFM 系统,运行合并规则的时候,运行某一个Entity下的规则会报错,但是其他的Entity不报错。调整oracle数据库的processes之后重启应用,解决此问题。(可能是此Entity下的组织太多了)

 

为了弄清楚到底什么情况,网络收集了一些信息来阅读

 

 

ORA-12520错误解决方法


参见:
oracle查看允许的最大连接数和当前连接数等信息

两个参数间的关系:sessions=1.1*processes+5
 

ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄

ORA-12520:TNS:监听程序无法为请求的服务器类型找到可用的处理程序

 


出现ORA-12520:TNS:监听程序无法为请求的服务器类型找到可用的处理程序,可能的原因如下:
1)服务端的数据库是专用服务器,但是在客户端的tnsname.ora里配置中设置了连接方式为shared,这种情况下打开tnsname.ora, 
   把(server = shared) 改成 (server = dedicate) 。也就是说,如果遇到报错 

ora-12520: tns 监听程序无法找到需要的服务器类型的可用句柄,

那可能说明你的共享服务器配置是错误的,即如你的服务器是专有服务器模式的,而你的客户端正
试图用共享连接你的数据库(server=shared),解决方法是:


1.更改客户端的tnsnames.ora为专有模式(server=dedicated)
2.把服务器配置成共享模式数据库

 

 

2)是由于参数process值不够引起的 

后来查看到v$process一直涨到140多,而我的数据库设置的是150.据此大致能断定process不够,用以下语句修改数据库的processes值 
alter system set processes=500 scope=spfile(由于processes是静态参数,scope只能为spfile,在v$sgastate条件为'procesees'中可以看到会每个process会点4个字节), 
重新启动数据库使新改的processes生效.再重新跑eclipse,就能正常启动了. 

注释:

如果在hibernate中的hibernate.connection.provider_class选择的是c3p0的就会出这种情况,其它的好像不会.很奇怪为什么c3p0会打开那么多个processs, 在shared连势接方式下,shared_server即是一直连在数据库的process值,注意这点

 

当前的连接数 
select count(*) from v$process; 

设置的最大连接数(默认值为150) 
select value from v$parameter where name = 'processes'; 

修改最大连接数 
alter system set processes = 300 scope = spfile; 

 
 再关注
sessions,processes 和 transactions 参数 关系 说明

 http://blog.csdn.net/tianlesoftware/article/details/6893561

转载于:https://www.cnblogs.com/cfas/p/7736456.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值