ORA-12505,TNS:监听器当前不知道连接描述符DB错误中给出的SID

时间:2014-09-16 14:20:13

标签: oracle11g windows-7-x64

我安装了oracle weblogic服务器和couldent配置它,当我试图设置连接时发生了一些错误。

我可以追溯到数据库连接存在一些问题。

我已将它安装在一台lenovo-pc上,使用windows professional x64。

在WEB LOGIC SERVER中:

我已将jdbc名称指定为“cmdemo”,将jndi名称指定为“jdbc / cmdemo”。

我选择了oracle的驱动程序为“(瘦)实例连接:版本:9:0.1及更高版本”。

我在交易选项中选择了支持全局交易选项和一阶段提交。

在连接属性中我给出了数据库名称为“cmdemo”,主机名 - “lenovo-pc”,端口 - “1521”,Db用户名 - “exp”Db密码 - “exp”。

当我尝试“测试配置”时,会提示以下错误消息...

错误讯息: 侦听器拒绝连接时出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的SID


oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:480)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)
oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:508)
oracle.jdbc.driver.T4CConnection.(T4CConnection.java:203)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
com.bea.console.utils.jdbc.JDBCUtils.testConnection(JDBCUtils.java:705)
com.bea.console.actions.jdbc.datasources.createjdbcdatasource.CreateJDBCDataSource.testConnectionConfiguration(CreateJDBCDataSource.java:458)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:870)
org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)
org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)
org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)
org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:336)
...

对此的解决方案将是一个很大的帮助...

的问候,

Syed Hidayat

1 个答案:

答案 0 :(得分:0)

查看监听器状态,如果它已关闭请请求dba获取监听器 lsnrctl状态(显示状态) 如果向下使用命令:lsnrctl start(开始)

如果问题仍然存在,则检查侦听器文件是否具有实例条目(如果不存在)。

例如:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = F:\oracle\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:F:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll") )
(SID_DESC = (ORACLE_HOME =F:\oracle\product\11.2.0\dbhome_1) (SID_NAME = example) ) )

编辑"示例"中的实例名称到您的实例名称并重新启动侦听器。您应该在状态输出中看到实例处于就绪状态。

通过连接userid/pwd@instace_name进行测试,以检查侦听器是否已启动,并且是否通过服务名称选择了连接。这应该有希望解决你的问题。