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

java.sql.SQLTransientConnectionException: spring HikariCP - 连接不可用,请求超时

程成天
2023-03-14

我已经掌握了java.sql。SQLTransientConnectionException:springHikariCP-连接不可用,请求在30001ms后超时。

第一个代码块工作良好,第二个(CP)不工作。

什么是错的,如何解决这个问题?

JDK - 1.8.0_73。

HikariCP-2.4.5。

Spring4.2.5。释放。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName" value="${connection.driverClassName}"/>
   <property name="username" value="${connection.userName}"/>
   <property name="password" value="${connection.password}"/>
   <property name="url" value="${connection.url}"/>
    </bean>

大脑性麻痹

   <bean id="hikariConfiguration" class="com.zaxxer.hikari.HikariConfig">
    <property name="poolName" value="springHikariCP"/>
    <property name="dataSourceClassName" value="${connection.dataSourceClassName}"/>
    <property name="maximumPoolSize" value="${connection.pool.maximumPoolSize}"/>
    <property name="idleTimeout" value="${connection.pool.idleTimeout}"/>
    <property name="dataSourceProperties">
   <props>
       <prop key="url">${connection.url}</prop>
       <prop key="user">${connection.userName}</prop>
       <prop key="password">${connection.password}</prop>
   </props>
  </property>
   </bean>
   <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-  method="close">
  <constructor-arg ref="hikariConfiguration"/>
  </bean>
//...............
#CONNECTION
connection.dataSourceClassName=org.hsqldb.jdbc.JDBCDataSource
connection.url=jdbc:hsqldb:mem:dbtest-local
connection.userName=sa
connection.password=

#POOL
connection.pool.maximumPoolSize=1
connection.pool.idleTimeout=28500

#HIBERNATE
hibernate.hbm2ddl.auto=create-drop
hibernate.dialect=H2Dialect
hibernate.show_sql=true

共有1个答案

子车安和
2023-03-14

如果使用dataSourceClassName,则不应提供jdbc url。

相反,您应该添加主机、数据库名等。作为财产。参见github上的示例:

dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
dataSource.user=test
dataSource.password=test
dataSource.databaseName=mydb
dataSource.portNumber=5432
dataSource.serverName=localhost

否则,不应使用 dataSourceClassName。尝试:

<bean id="hikariConfiguration" class="com.zaxxer.hikari.HikariConfig">
    <property name="poolName" value="springHikariCP" />
    <property name="maximumPoolSize" value="${connection.pool.maximumPoolSize}" />
    <property name="idleTimeout" value="${connection.pool.idleTimeout}" />
    <property name="jdbcUrl" value="${connection.url}" />
    <property name="dataSourceProperties">
        <props>
            <prop key="user">${connection.userName}</prop>
            <prop key="password">${connection.password}</prop>
        </props>
    </property>
</bean>

这是我在当地的工作。

 类似资料:
  • 我在SpringBoot 2.0中使用标准的HikariCP实现。1份申请书。但是过了一会儿,我一遍又一遍地犯同样的错误 HikariPool-1-连接不可用,请求在30000ms后超时 我首先检查了代码,如果有任何未关闭的连接或丢失的事务注释,但我没有找到任何东西。我也试图增加游泳池,减少我application.yml的时间,但这似乎没有任何效果。 奇怪的是,HikariCP似乎只创建了4个池

  • 我得到连接不可用错误msg与下面的配置xml映射。请建议我在beolw代码中做错了什么,或者这是另一个问题。根据我的调查,这是HikariCP、HiberNate和Spring Batch的一个intregation问题。2.0.3 5.1.64.0.0.RELEASE3.0.0.RELEASE3.0.0.RELEASE0.5 2.3.2 4.3.5。最终 错误:-- 请帮帮我。

  • 我正在使用JMeter测试Spring Boot REST API服务器。 JMeter选项包括 测试一直进行到1-20000个请求, 但请看下面的图片。 平均响应时间在10ms以下,但有时超过20~50ms。 当响应时间增加时,将出现连接超时。 即使我将连接超时设置为超过10分钟。 为什么会出现这个错误?我找不到..

  • 问题内容: 我有一个用于测试的小型Java应用程序。我最近搬到了日香。我注意到的是,我不断收到此错误。 以下是我最初对hikari的设置。 它几乎没有用在我的两个设备上,我保证在最后我确实将其关闭。所以我不知道为什么它会不断出现错误?可能是问题所在,或者我需要更改某些设置吗? 我的hikari版本是HikariCP-2.6.1.jar。 问题答案: 由于网络延迟或某些查询执行时间过长(超过3000

  • 我有一个用于测试的小型Java应用程序。我最近搬到了hikari。我注意到的是我一直在犯这个错误。 下面是我对hikari最初的设置。 我的两个设备几乎没有被使用过,我保证最后会关闭它。所以我不知道为什么它总是出错?可能是什么问题,或者是否有一些设置需要更改? 我的hikari版本是HikariCP-2.6。1.jar。