Oracle:拒绝连接监听器错误
我尝试使用Java连接Oracle数据库。Oracle:拒绝连接监听器错误
我收到以下错误:
Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
我相信,我的Java代码是好的,因为我成功了早期连接PostgresDB。
这是我context.xml
:
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
username="admin"
password="password"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@xx.xx.xxx.xxx:1521:cuat/"/>
也许我的连接URL是在一个错误的格式。提前致谢。
该URL看起来正确。您收到的错误是您的计算机上的tns监听器(查找名为tnsnames.ora
的文件)与您的数据库不完全一致。刷新这个文件,连接应该工作。
对不起,我不知道它。连接oracle数据库在不同的pc上。是否需要创建tnsname.ora?必须放置在哪里? – needreebas
侦听器未维修数据库SID或服务名为“cuat”
检查监听器,并确保你有名字吧。
在服务器上,您可以针对服务列表运行“lsnrctl status”。
相同的网址和sid我在db visualizer IDE中提供,我可以连接数据库。但不能通过应用程序。 – needreebas
数据库不在我的机器,那么我有多大的文件。我只是试图通过应用程序连接。还可以通过ide我能够连接 – needreebas
什么版本的Oracle,11或12?在dbvisualizer – thatjeffsmith
如果我没记错,Oracle会区分服务名称和SID-s(标识符)。您可以尝试
URL = “的jdbc:神谕:薄:@ XX.XX.XX.XX:1521/cuat”(如果cuat是一个服务名称,而不是一个SID,使用/,而不是:)
无论如何,请检查tnsnames.ora文件。
中发布连接属性的屏幕截图,因为cuat是sid – needreebas
那么,tnsnames.ora文件中有什么? (服务名称和SID-s应该在那里声明) –
一些工具,特别是与Oracle9兼容的工具,对服务名称/ SID差异不是很敏感,但它对于精简驱动程序来说很重要。只要尝试其他网址格式,看看它是否有效。 –
你可以发布创建连接的代码吗? 'context.xml'本身不足以进行调试。 – vish4071