Oracle:使用JDBC url的连接间歇性问题
SQL developer提供了多种连接到数据库实例的方法 如果我选择Oracle:使用JDBC url的连接间歇性问题,oracle,oracle-sqldeveloper,database-administration,Oracle,Oracle Sqldeveloper,Database Administration,SQL developer提供了多种连接到数据库实例的方法 如果我选择Basic方法,将hostname、port和SID分别提供到输入框中,则数据库连接运行时不会出现任何问题 但是,如果我选择Advanced方法,它整体上提供以下JDBC url: jdbc:oracle:thin:@hostname:port:SID 点击Test按钮,有时状态显示为Success,但有时会弹出如下错误消息: Status : Failure -Test failed: Listener refused t
Basic
方法,将hostname
、port
和SID
分别提供到输入框中,则数据库连接运行时不会出现任何问题
但是,如果我选择Advanced
方法,它整体上提供以下JDBC url:
jdbc:oracle:thin:@hostname:port:SID
点击Test
按钮,有时状态显示为Success
,但有时会弹出如下错误消息:
Status : Failure -Test failed: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
那么,这两种方法为什么会有如此大的差异呢?这是SQL开发人员的错误吗
更新1
我发现这个问题恰恰发生在我使用JNDI连接运行Java EE应用程序到同一个数据库实例时,所以如果其中一个是JNDI,那么数据库实例侦听器不能容忍多个访问?我想我只是弥补一下…找到问题,简而言之,问题可以通过以下两种选择之一解决:
<Resource name="jdbc/schema_A" auth="Container" type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@hostname:1521:orcl"
username="app_A" password="app_A" maxActive="20" maxIdle="10" maxWait="-1" />
现在一切都顺利…干杯
<Resource name="jdbc/schema_A" auth="Container" type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@hostname:1521:orcl"
username="app_A" password="app_A" maxActive="1" maxIdle="1" maxWait="-1" />