>데이터 베이스 >MySQL 튜토리얼 >비활성 후 Spring Boot 데이터베이스 연결이 끊어지는 이유는 무엇이며 이를 방지하려면 어떻게 해야 합니까?

비활성 후 Spring Boot 데이터베이스 연결이 끊어지는 이유는 무엇이며 이를 방지하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-06 00:32:10447검색

Why Are My Spring Boot Database Connections Dropping After Inactivity, and How Can I Prevent It?

Spring-Boot에서 설정된 기간을 초과하여 데이터베이스에 대한 연결이 끊어졌습니다.

JPA 및 Hibernate를 사용하여 Spring-Boot 애플리케이션에서 데이터베이스에 대한 연결이 가능합니다. 상호 작용 사이의 시간이 특정 제한을 초과하면 손실됩니다. 이 문제는 서버의 "wait_timeout" 값 초과로 인한 연결 문제를 나타내는 오류 메시지와 함께 나타나는 경우가 많습니다.

이 문제를 해결하려면 Spring의 testOnBorrow 및 유효성 검사 쿼리 속성을 사용하지 않는 것이 좋습니다. 대신, 보다 강력한 솔루션은 다음 설정을 구성하는 것입니다.

  • spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true: JDBC에서 자동 재연결 활성화 URL.
  • spring.datasource.test-while-idle=true: 연결이 진행되는 동안 테스트 연결 유휴.
  • spring.datasource.test-on-borrow=true: 풀에서 연결을 빌리기 전에 연결을 테스트합니다.
  • spring.datasource.validation-query=SELECT 1: 유효성 검사를 사용합니다. 연결 유효성을 확인하는 쿼리입니다.
  • spring.datasource.time-between-eviction-runs-millis=5000: 연결 빈도를 지정합니다. 연결 유효성 검사.
  • spring.datasource.min-evictable-idle-time-millis=60000: 연결을 확인하고 풀에서 제거할 유휴 시간 제한을 정의합니다.

거래 중 활성 연결과 관련된 잠재적인 문제를 방지하려면 거래 시작 시 연결을 검증하고 다음과 같은 경우 새 연결을 획득하는 것이 좋습니다. 필요합니다.

이러한 구성 설정을 사용하면 연결을 정기적으로 검증하고 오래된 연결이 풀에 누적되는 것을 방지할 수 있습니다. 결과적으로 오랫동안 활동이 없더라도 데이터베이스 연결은 안정적으로 유지되어야 합니다.

위 내용은 비활성 후 Spring Boot 데이터베이스 연결이 끊어지는 이유는 무엇이며 이를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.