>  기사  >  Java  >  JPA 및 Hibernate를 사용하는 Spring Boot 애플리케이션에서 데이터베이스 연결 시간 초과를 방지하는 방법은 무엇입니까?

JPA 및 Hibernate를 사용하는 Spring Boot 애플리케이션에서 데이터베이스 연결 시간 초과를 방지하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-25 05:38:29349검색

How to Prevent Database Connection Timeouts in Spring Boot Applications Using JPA and Hibernate?

특정 시간 간격 후에 데이터베이스 연결이 사라짐: Spring Boot, JPA, Hibernate

JPA 및 MySQL과 함께 Hibernate를 활용하는 Spring Boot 애플리케이션에서, 사용자는 데이터베이스 연결 시간이 초과되었음을 나타내는 오류가 발생할 수 있습니다. 이 문제를 해결하려면 권장 및 권장되지 않는 접근 방식을 살펴보겠습니다.

권장되지 않는 접근 방식: 자동 재연결 활성화

빠르고 간단하면서도 JDBC에서 자동 재연결을 활성화합니다. URL은 권장되지 않습니다. 활성 연결 중에, 특히 트랜잭션이 중단될 때 문제가 발생할 수 있습니다.

권장 접근 방식: 연결 유효성 검사

이 문제를 효과적으로 해결하려면 전체 연결 유효성 검사를 활성화하는 것이 중요합니다. 애플리케이션의 수명. 여기에는 여러 속성 구성이 포함됩니다.

  • 최대 활성 연결 수: spring.datasource.max-active(예: 10)
  • 수 초기 연결: spring.datasource.initial-size(예: 5)
  • 유휴 연결의 최소 및 최대 수: spring.datasource.max-idle 및 spring.datasource. min-idle(예: 5 및 1)
  • 유휴 및 대여 중 유효성 검사: spring.datasource.test-while-idle 및 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- 밀리초(예: 60000밀리초)

이러한 구성을 사용하면 연결의 유효성이 정기적으로 테스트되고 유휴 연결이 지정된 기간 동안 사용되지 않은 경우 풀에서 제거됩니다.

Spring Boot 2.x 업데이트:

Spring Boot 2.x는 Tomcat JDBC 대신 HikariCP를 기본 연결 풀로 전환했습니다. 결과적으로 연결 유효성 검사를 위한 구성 속성이 약간 다를 수 있습니다.

위 내용은 JPA 및 Hibernate를 사용하는 Spring Boot 애플리케이션에서 데이터베이스 연결 시간 초과를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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