首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle:使用JDBC url的连接间歇性问题

Oracle:使用JDBC url的连接间歇性问题
EN

Stack Overflow用户
提问于 2013-02-04 23:17:27
回答 1查看 908关注 0票数 0

SQL developer提供了多种连接数据库实例的方法。

如果我选择Basic方法,它在输入框中分别提供hostnameportSID,则数据库连接运行时没有任何问题。

但是,如果我选择Advanced方法,它整体上提供了以下JDBC url:

代码语言:javascript
复制
jdbc:oracle:thin:@hostname:port:SID

点击Test按钮,有时状态显示为Success,但有时会弹出如下错误消息:

代码语言:javascript
复制
Status : Failure -Test failed: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found

那么为什么这两种方法会有如此大的不同呢?它是来自SQL developer的bug吗?

更新1

我发现当我使用JNDI连接到同一个数据库实例来运行Java EE应用程序时,就会发生这个问题,所以如果其中一个是JNDI,那么数据库实例侦听器就不能容忍多个访问。我想这是我编的..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-05 00:40:11

找到问题,简而言之,问题可以解决以下两种选择中的任何一种:

JNDI

  • 增加Oracle

  • Decrease允许的连接大小JNDI

允许的连接大小

第一个解决方案由DBA操作,但第二个解决方案可以由开发人员实现,在我的应用程序的JNDI设置(我们在Tomcat上测试JNDI )中,允许到池的最大连接数太多,当前Oracle服务无法处理:

代码语言:javascript
复制
<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" />

maxActive="20" maxIdle="10"太多了,因此出现了错误消息,所以我将其改为

代码语言:javascript
复制
<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" />

现在没有issues...cheers,一切都可以正常工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14689727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档