Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

ứng dụng web spring-boot mất khả năng kết nối với MySQL / RDS sau một thời gian

Nếu bạn đang sử dụng cấu hình tự động để xác định kết nối RDS từ tệp thuộc tính như sau:

cloud.aws.rds.testdb.password=testdbpwd
cloud.aws.rds.testdb.username=testdbuser
cloud.aws.rds.testdb.databaseName=testdb

Tự động cấu hình nguồn dữ liệu khởi động mùa xuân sẽ không hoạt động ngay cả khi bạn đặt chúng (hoặc nguồn dữ liệu tomcat conf) vào tệp cấu hình của bạn:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.test-on-borrow: true
spring.datasource.validation-query: SELECT 1 FROM DUAL
spring.datasource.log-validation-errors: true

Tôi nghĩ đây là lý do tại sao bạn không thể xác thực các kết nối của mình trong nhóm trước khi sử dụng chúng.

Bạn cần ghi đè phương thức postProcessAfterInitialization để đặt thuộc tính nhóm của bean TomcatJdbcDataSourceFactory như sau:

@Component
public class PoolConfiguration implements BeanPostProcessor {

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof TomcatJdbcDataSourceFactory) {
        TomcatJdbcDataSourceFactory tomcatJdbcDataSourceFactory = (TomcatJdbcDataSourceFactory) bean;
        tomcatJdbcDataSourceFactory.setTestOnBorrow(true);
        tomcatJdbcDataSourceFactory.setTestWhileIdle(true);
        tomcatJdbcDataSourceFactory.setValidationQuery("SELECT 1");
    }
    return bean;
}
}

Tôi không thể tìm thấy bất kỳ giải pháp nào khác cho vấn đề này. Bằng cách này, đây có thể là lỗi của spring-cloud-aws-autoconfigure gói.

Chúc may mắn!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách nhận NGÀY TỐI ĐA thứ hai trong MYSQL

  2. SQL Return 1,0 trong biến mới dựa trên trường hợp khi câu lệnh tham chiếu đến nhiều biến khác

  3. Doctrine2 trong Symfony2:Làm cách nào để biết đối tượng gọi nào dẫn đến một truy vấn?

  4. Có bất kỳ giới hạn nào về độ dài của chuỗi trong mysql không?

  5. MySQL BLOB so với Tệp để lưu trữ hình ảnh PNG nhỏ?