【问题标题】:HikariCP connection pool trying to connect to very old connectionsHikariCP 连接池试图连接到非常旧的连接
【发布时间】:2022-10-06 01:10:04
【问题描述】:

我正在使用 HikariCP,配置为传递给 HikariDataSource 的 HikariConfig bean。 环境是 Fuse 7.3 (OSGi)。

这已经工作了多年。

今天,我在日志中发现错误,显示它试图连接一些我们已经有一段时间没有使用的古老数据库 URL。

我已经搜索了代码和 OSGi 配置。那些旧的数据库 URL 无处可寻。

我唯一能想到的是池中有一些古老的连接,并且池连接字符串以某种方式保存到磁盘,并且即使在关闭和启动后也会重新加载。

但是,hikariCP 试图连接到这些旧 URL 应该是不可能的。配置引用这些 URL 已经有好几年了。

知道这可能是怎么发生的吗?

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host qa01, named instance authdb failed. Error: \"java.net.SocketTimeoutException: Receive timed out\". Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434.  For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:206)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:5294)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:1859)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1596)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1447)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:788)
at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:719)
at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:71)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:341)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:428)
at com.zaxxer.hikari.pool.HikariPool.access$300(HikariPool.java:70)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:612)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:598)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    标签: osgi connection-pooling hikaricp jbossfuse


    【解决方案1】:

    我唯一能想到的就是找出哪个包负责(停止/启动包并查看哪个包产生错误)。也许捆绑包中有一个配置文件。查看已部署的 bundle/cache 目录,看看里面有什么。很可能会证明有问题的捆绑包是用于测试而不需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 2017-09-16
      • 2015-12-15
      • 2018-11-09
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多