Micronaut Data MySQL не работает автоподключение к базе данных - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть строка подключения для базы данных MySQL. Он отлично работает во время запуска, после некоторого простоя MySQL соединение обрывается из-за повторного подключения.

Какие еще свойства нам нужно включить, чтобы сохранить соединение?

datasources:
  default:
    url:  ${JDBC_URL:`jdbc:mysql://dbhost/DB?autoReconnect=true`}
    driverClassName: com.mysql.cj.jdbc.Driver
    username: ${JDBC_USER}
    password: ${JDBC_PASSWORD}        
    dialect: MYSQL

Ошибка

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: The last packet successfully received from the server was 41,608,139 milliseconds ago. The last packet sent successfully to the
server was 41,608,144 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

Я включил банки tomcat в мои проекты.

compileOnly "io.micronaut.data:micronaut-data-processor:$micronautDataVersion"
implementation "jakarta.persistence:jakarta.persistence-api:2.2.2"
implementation "io.micronaut.data:micronaut-data-jdbc:$micronautDataVersion" 
implementation "io.micronaut.configuration:micronaut-jdbc-tomcat"

1 Ответ

0 голосов
/ 13 февраля 2020

Я добавил эти настройки. Он поддерживает соединение.

datasources:
  default:
    pooled: true
    jmxExport: true
    url:  ${JDBC_URL:`jdbc:mysql://dbhost/DB?autoReconnect=true`}
    driverClassName: com.mysql.cj.jdbc.Driver
    username: ${JDBC_USER}
    password: ${JDBC_PASSWORD}            
    dialect: MYSQL
    jmxEnabled: true
    initialSize: 5
    maxActive: 50
    minIdle: 5
    maxIdle: 25
    maxWait: 10000
    maxAge: 600000
    timeBetweenEvictionRunsMillis: 5000
    minEvictableIdleTimeMillis: 60000
    validationQuery: "SELECT 1"
    validationQueryTimeout: 3
    validationInterval: 15000
    testOnBorrow: true
    testWhileIdle: true
    testOnReturn: false
    jdbcInterceptors: "ConnectionState;StatementCache(max=200)"
...