ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程
使用数据库时总报这个错,多点几次就没问题了。
请问具体怎么解决?

解决方案 »

  1.   

    估计是lisntner动态注册的原因。
    可以添加静态注册到listener.ora中:
    如下形式:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /oracle/app/product/10g)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = test)
          (ORACLE_HOME = /oracle/app/product/10g)
          (SID_NAME = test)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        )
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
        )
      )
      

  2.   

    listener.ora中可能存在冗余的东东。
      

  3.   

    # listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_3\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = D:\oracle\product\10.2.0\db_3)
          (PROGRAM = extproc)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = traders)(PORT = 1521))
        )
      )这是我的listener.ora
      

  4.   

    出现这个问题的原因很多
    比如,网络不好,有断点
    比如,process不够大
    还比如,你把HOST = traders 中的主机名换成ip地址等等。。