【问题标题】:HikariCP poolName configuration for Slick 3.0Slick 3.0 的 HikariCP poolName 配置
【发布时间】:2015-09-17 23:18:36
【问题描述】:

我在 application.conf 中为 Slick 3.0 使用以下类型安全配置。 HikariCP 是 Slick 3.0 的默认连接池。我将 poolName 设置为“primaryPool”:

slick.dbs.primary= {
  driver="com.typesafe.slick.driver.ms.SQLServerDriver$"
  db {
    url = "DB URL"
    driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
    user = "myUser"
    password = "myPassword"
    poolName="primaryPool"
  }
}

从 HikariCP 日志中,我看到了 清理池统计数据之前db(total=21,inUse=0,avail=21,waiting=0)

使用了默认连接池名称“db”,但不是我所期望的 primaryPool。我怀疑配置格式不正确。

所以我的问题是如何使用 Typesafe 配置在 application.conf 中配置 poolName?

注意:因为我的应用程序中会有多个连接池,所以我希望记录特定的池名称以区分不同的池。

【问题讨论】:

  • 基于查看slick.typesafe.com/doc/3.0.2/database.html,池名称可能需要放在“属性”块中?
  • 我试过了,但没用。根据链接,用户/密码也应该在“属性”下,但在我的应用程序中,我直接将它们放在 db 下,没有属性并且它可以工作。所以我猜 Slick 想要 HikariCP 的特定配置。

标签: slick hikaricp typesafe


【解决方案1】:

我通过在自己的代码中设置 poolName 找到了解决方法:

 val dbConfig = dbConfigProvider.get[JdbcProfile]
 val poolName = dbConfig.config.getConfig("db").getString("poolName")
 dbConfig .db.source.asInstanceOf[HikariCPJdbcDataSource].ds.setPoolName(poolName)

这不是一个好的解决方案,因为我对 HikariCPJdbcDataSource 进行了硬编码,但它至少可以满足我的要求。

仍然希望得到有关如何在 application.conf 中正确配置 poolName 的帮助。

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2015-07-31
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多