当前位置: 首页 > 知识库问答 >
问题:

Hikari连接池,连接不可用

邹星火
2023-03-14
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC 

Connection at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:431)

Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection

Caused by: java.sql.SQLTransientConnectionException: springHikariCP - Connection is not available, request timed out after 30025ms.

Caused by: java.sql.SQLException: Network error IOException: Address already in use: connect

Caused by: java.net.BindException: Address already in use: connect

共有1个答案

莘欣怿
2023-03-14

仅仅因为您允许一个程序同时使用到数据库的数千个连接,并不意味着数据库可以处理它们。这就是为什么增加连接会在一段时间后产生反效果的原因(几十个或几百个连接)。

您可以配置等待空闲连接的超时(在示例中为30秒),但这并不能改变这样一个事实,即如果您试图在一个规模很小的服务器上做很多事情,那么您就会遇到麻烦。

获得一个更大的db(或向外扩展),使用更少的线程或尝试在可以优化的数据库中找到性能热点。

 类似资料:
  • 我的服务器上有一个Spring启动项目。我有时会遇到“Hikari池连接不可用”错误。我想不出原因。我看起来有很多这样的问题。一些人建议关闭一些@交易。但是,在我的应用程序中,我没有使用任何@Transactional注释。以下是我的Hikari池配置: 当我检查我的卡塔琳娜。在日志文件外,我注意到活动连接数有时会增加。例如,昨天没有活动的连接。所有连接都处于空闲状态。现在池中有2个活动连接。是否

  • 我使用具有以下设置的Hikary连接池: 在getConnection()之后,hikari尝试获取到实例的2个连接,但只将一个连接放在连接池中。我怎样才能修好它?hikari版本是

  • 我希望在我的Spring 4应用程序中使用Hikari连接池。数据库是Google CloudSQLPostgres数据库。 我在pom中有以下依赖项。xml: 在我的申请Context.xml,我有: 但是我得到了以下例外: 出了什么问题?

  • 我有一个spring boot(2.4)应用程序,在长时间运行的jpa事务下,我看到很多连接超过了我的最大池大小,当我检查日志时,我看到连接被省略了,在新的HikariPools 2-3-4等之后。。。都打开了。我试过hikari 4.0。2个版本,但仍然是相同的问题。在这个场景中,给出最大池大小的含义是什么(每个池看起来都是我的最大池大小,但总连接数超过了我的限制)。是否有限制期初池数的配置?我

  • 在我的公司项目中,我们使用 Hikari 进行连接池管理。[Hibernate 4.3.5 Spring 4 Java 1.8]下面是配置 我们面临的问题二是以下问题 > 出于某种原因,Hikari正在创建2个连接池HikariPool-1和HikariPool-2。 只有HikariPool-2正在使用,甚至出现错误一段时间后

  • Hikari:2.4.7 PostgreSQL JDBC驱动程序:9.4-1201-jdbc41 我试图理解必须对java.sql做些什么。对象以使其在连接池中再次可用? 我刚刚将连接池引入了一个多线程应用程序,该应用程序以前使用每个SQL语句建立/拆除连接。 在介绍Hikari之后,我注意到,一旦我点击,此后每次尝试都会由于而失败。所以看起来我没有以某种方式“释放”这个连接。 连接对象的典型用法