Приложение зависает довольно часто - веб-приложение Hikari Spring Boot - PullRequest
0 голосов
/ 25 апреля 2020

Привет! Я работаю над веб-приложением, использующим Spring boot 2.2.5. Это использует Хикари. Когда я запускаю веб-приложение , оно застревает для начальной пары запросов веб-сервера. Такое же поведение наблюдается иногда при использовании приложения также иногда . Я попытался включить режим отладки в Hikari, используя

logging.level.com.zaxxer.hikari = debug

Ниже приведены журналы ошибок, которые я получаю.

        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.4.RELEASE.jar:5.2.4.RELEASE]
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.2.4.RELEASE.jar:5.2.4.RELEASE]
        ... 66 common frames omitted
Caused by: java.sql.SQLTransientConnectionException: HikariPool-7 - Connection is not available, request timed out after 30044ms.
        at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:689) ~[HikariCP-3.4.2.jar:na]
        at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:196) ~[HikariCP-3.4.2.jar:na]
        at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:161) ~[HikariCP-3.4.2.jar:na]
        at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) ~[HikariCP-3.4.2.jar:na]
        at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.4.12.Final.jar:5.4.12.Final]
        at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38) ~[hibernate-core-5.4.12.Final.jar:5.4.12.Final]
        at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:104) ~[hibernate-core-5.4.12.Final.jar:5.4.12.Final]
        ... 104 common frames omitted
Caused by: java.sql.SQLNonTransientConnectionException: No operations allowed after connection closed.
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:73) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2490) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.zaxxer.hikari.pool.PoolBase.setNetworkTimeout(PoolBase.java:556) ~[HikariCP-3.4.2.jar:na]
        at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:169) ~[HikariCP-3.4.2.jar:na]
        at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:185) ~[HikariCP-3.4.2.jar:na]
        ... 109 common frames omitted
Caused by: com.mysql.cj.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.
        at sun.reflect.GeneratedConstructorAccessor949.newInstance(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_221]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_221]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.NativeSession.checkClosed(NativeSession.java:1171) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:576) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2486) ~[mysql-connector-java-8.0.19.jar:8.0.19]
        ... 112 common frames omitted

Hibernate: select usermaster0_.user_id as user_id1_12_, usermaster0_.create_date as create_d2_12_, usermaster0_.name as name3_12_, usermaster0_.password as password4_12_, usermaster0_.password_flag as password5_12_, usermaster0_.phone_number as phone_nu6_12_, usermaster0_.state as state7_12_, usermaster0_.status as status8_12_, usermaster0_.update_date as update_d9_12_, usermaster0_.user_name as user_na10_12_ from gfxusers usermaster0_ where usermaster0_.user_name=?
2020-04-23 16:48:45.989  WARN 9565 --- [o-443-exec-3049] com.zaxxer.hikari.pool.PoolBase          : HikariPool-7 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6ac06e51 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
2020-04-23 16:48:50.996  WARN 9565 --- [o-443-exec-3049] com.zaxxer.hikari.pool.PoolBase          : HikariPool-7 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@f475979 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.

Ниже приведен файл application.properties

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.user.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
org.apache.tomcat.util.http.Parameters.MAX_COUNT=100000

spring.datasource.hikari.maximumPoolSize=12
spring.datasource.hikari.maxLifetime=20000
spring.datasource.hikari.initializationFailTimeout=-1
spring.datasource.hikari.leak-detection-threshold=2000

Может кто-нибудь сообщить мне, в чем дело, что я делаю, или что может быть причиной зависания приложения и причиной соединения иногда недоступно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...