代码之家  ›  专栏  ›  技术社区  ›  Avi Kaminetzky

Slick/HikariCP/MySQL总是超时

  •  0
  • Avi Kaminetzky  · 技术社区  · 8 年前

    sbt run . 我快疯了,谢谢你的帮助。

    明确地说,我将Slick与本地MySQL数据库一起使用,以实现非常轻量级的使用。

    libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.11"
    libraryDependencies += "com.typesafe.slick" %% "slick" % "3.2.3"
    libraryDependencies += "com.typesafe.slick" %% "slick-hikaricp" % "3.2.3"
    

    # db connections = ((physical_core_count * 2) + effective_spindle_count)
    fixedConnectionPool = 5
    
    repository.dispatcher {
      executor = "thread-pool-executor"
      throughput = 1
      thread-pool-executor {
        fixed-pool-size = ${fixedConnectionPool}
      }
    }
    

    java.sql.SQLTransientConnectionException: <dbconfig> - Connection is not available, request timed out after 1001ms.
    

    堆栈跟踪:

    com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:548)
    com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:186)
    com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145)
    com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:83)
    slick.jdbc.hikaricp.HikariCPJdbcDataSource.createConnection(HikariCPJdbcDataSource.scala:14)
    slick.jdbc.JdbcBackend$BaseSession.<init>(JdbcBackend.scala:453)
    slick.jdbc.JdbcBackend$DatabaseDef.createSession(JdbcBackend.scala:46)
    slick.jdbc.JdbcBackend$DatabaseDef.createSession(JdbcBackend.scala:37)
    slick.basic.BasicBackend$DatabaseDef.acquireSession(BasicBackend.scala:249)
    slick.basic.BasicBackend$DatabaseDef.acquireSession$(BasicBackend.scala:248)
    slick.jdbc.JdbcBackend$DatabaseDef.acquireSession(JdbcBackend.scala:37)
    slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:274)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    java.lang.Thread.run(Thread.java:748)
    

    更新

    我没有在应用程序.conf:

    <name> {
      slick.driver = scala.slick.driver.MySQLDriver
      driver = "com.mysql.cj.jdbc.Driver"
      url = __
      user = __
      password = __
    }
    

    我在配置中添加了:

      keepAliveConnection = true
      connectionPool = disabled
    

    而且效果很好。

    0 回复  |  直到 8 年前
    推荐文章