【问题标题】:Providing connection time out in Derby client driver在 Derby 客户端驱动程序中提供连接超时
【发布时间】:2017-11-27 02:32:49
【问题描述】:

如果网络出现任何问题,我要求在指定时间内从连接池中检索连接超时。这应该通过 java 应用程序来处理。

基本上,想给datasource.getConnection()方法超时。

所以经过一番研究,我发现DataSource 的setLoginTimeout(int seconds) 方法具有此功能,以便在指定秒内无法建立数据库连接时发出通知。

我在OracleConnectionPoolDataSource 上应用了这个,它工作正常,但对于 Derby 客户端驱动程序,它给出了异常, org.apache.derby.jdbc.ClientDriver 没有任何这样的属性 loginTimeout。

寻找您的友好回复,如果有任何其他方法可以根据我的要求或我需要添加/缺少的任何内容或与此相关的任何信息,请告诉我。

服务器 - Resin 3.0

【问题讨论】:

  • Derby驱动没有这个属性,建议在OS层面配置TCP keepalive。
  • Driver 不是DataSource,也许您正在寻找DriverManager.setLoginTimeout?
  • Hi Mark,实际上我们在应用程序中有不同的第三方api,所以如果我们改变操作系统级别,也会有影响。
  • 您好,用于 Derby 客户端驱动程序的简单 JDBC DriverManager.setLoginTimeout 方法不起作用。与 apache 组提到的链接相同,issues.apache.org/jira/browse/DERBY-2026,文件名 logintimeout.java.. 请帮助我。
  • 经过很长时间重新处理这个问题,终于能够通过使用c3p0连接池而不是使用derby的数据源来实现这一点。C3P0具有checkConnectionTimeout属性,它完全符合我的要求。

标签: java jdbc connection-pooling derby resin


【解决方案1】:

最终能够通过使用 c3p0 连接池而不是使用 derby 的数据源来实现这一点。C3P0 具有 checkoutTimeout 属性,该属性完全符合此要求。

【讨论】:

    猜你喜欢
    • 2011-04-20
    • 2018-11-05
    • 2018-07-17
    • 2016-01-10
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多