ora-12516 tns listener could not find available handler with matching protocol 收藏
今天EPP(Enterprise Product Protal)系统间客户端连线出现如题ORA-12516错误.
根据其需求,首先确认服务器端监听器和DB并没有问题后,即判断为客户端连接问题;其二,查找ORA-12516错误引起的原因,发现为Processes数量导致,Oacle的sessions和processes的关系是sessions=1.1*processes + 5.这样的话,增加Processes的数量即可解决.最后的解决方案见下文所示:
【注:sessions是个派生值,由processes的值决定,公式sessions=1.1*process + 5】
方法1:通过SQLPLUS修改
- [root@EPPDB ~]# su - oracle
- [oracle@EPPDB ~]$ sqlplus /nolog
- SQL*Plus: Release 10.2.0.3.0 - Production on Thu May 27 09:06:28 2010
- Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
- SQL> conn / as sysdba
- Connected.
- SQL> show parameter processes;
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- aq_tm_processes integer 0
- db_writer_processes integer 1
- gcs_server_processes integer 0
- job_queue_processes integer 10
- log_archive_max_processes integer 2
- processes integer 300
- SQL> alter system set processes=600 scope=spfile;
- System altered.
- SQL>
方法2.修改Oracle配置文件
值得注意的是,修改SPFILEORCL.ORA文件中的processes的值,在Oralce的不同版本中在所区别。Oracle 8.1.5中是init.ora文件,在Oracle 9i及更高版本中修改init.ora文件是无效的,这个文件由于是一个二进制的文件,不能直接使用notepad此类的编辑器打开。
否则会报错误ORA-27101 Shared memory realm does not exist。使用UltraEdit或者EditPlus之类的可以编辑二进制文件的编辑器打开此文件(直接编辑二进制文件),然后在Windows服务中重新启动Oracle服务器即可。
方法3.通过Oracle Enterprise Manager Console在图形化管理器中修改
3.1 以系统管理员的身份登入
3.2 进入数据库的例程-配置-一般信息-所有初始化参数
3.3 修改processes的值
3.4 Sessions的值由公式sessions=1.1*process + 5派生得到
方法3.通过Oracle Enterprise Manager Console在图形化管理器中修改
3.1 以系统管理员的身份登入
3.2 进入数据库的例程-配置-一般信息-所有初始化参数
3.3 修改processes的值
3.4 Sessions的值由公式sessions=1.1*process + 5派生得到
转帖 http://blog.csdn.net/langcai1981/archive/2010/05/27/5627276.aspx