Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

स्प्रिंग-बूट वेब ऐप थोड़ी देर के बाद MySQL / RDS से कनेक्ट करने की क्षमता खो देता है

यदि आप इस तरह की संपत्ति फ़ाइल से आरडीएस कनेक्शन को परिभाषित करने के लिए ऑटो-कॉन्फ़िगरेशन का उपयोग कर रहे हैं:

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

स्प्रिंग बूट डेटासोर्स ऑटो-कॉन्फ़िगरेशन काम नहीं करेगा, यहां तक ​​कि आप इन (या टॉमकैट डेटासोर्स कॉन्फिडेंस) को अपनी कॉन्फ़िगरेशन फ़ाइल में डालते हैं:

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

मुझे लगता है कि यही कारण है कि आप पूल में अपने कनेक्शन का उपयोग करने से पहले उन्हें सत्यापित नहीं कर सकते।

आपको TomcatJdbcDataSourceFactory बीन के पूल गुण इस तरह सेट करने के लिए postProcessAfterInitialization विधि को ओवरराइड करने की आवश्यकता है:

@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;
}
}

मुझे इसके लिए कोई अन्य समाधान नहीं मिला। वैसे यह spring-cloud-aws-autoconfigure का एक बग हो सकता है पैकेट।

शुभकामनाएँ!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उबंटू में mysql सर्वर शुरू करने में असमर्थ

  2. MySQL में सरणियों को कैसे स्टोर करें?

  3. MySQL पंक्ति के बाद पहले का चयन करें

  4. विंडोज़ में कमांड लाइन से mysql डेटा निर्देशिका कैसे खोजें

  5. PHP को MySQL क्लाइंट की तुलना में क्वेरी चलाने में 90x अधिक समय लगता है