Tamat Masa Sambungan dalam But Spring dengan JPA dan Hibernate
Apabila menggunakan Spring Boot dengan JPA-Hibernate dan MySQL, anda mungkin menghadapi ralat berikut :
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 56,006,037 milliseconds ago. The last packet sent successfully to the server was 56,006,037 milliseconds ago. is longer than the server configured value of 'wait_timeout'.
Isu ini timbul disebabkan oleh ketidakaktifan yang berpanjangan dalam sambungan,導致伺服器終止連線。
Penyelesaian Tidak Disyorkan
spring.datasource.testOnBorrow=true spring.datasource.validationQuery=SELECT 1
Penyelesaian Disyorkan
Penyelesaian yang lebih komprehensif melibatkan:spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true
spring.datasource.max-active=10
spring.datasource.initial-size=5
spring.datasource.max-idle=5 spring.datasource.min-idle=1
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
Nota untuk HikariCP
Dalam Spring Boot 2.x, kolam sambungan telah ditukar kepada HikariCP. Rujuk dokumentasi HikariCP untuk pilihan konfigurasi lanjut.Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, memfokuskan pada format soalan-jawapan dan merangkumi kandungan artikel: **Pilihan 1 (Fokus pada Ralat):** * **Spring Boot JPA/Hibernate: Cara Membetulkan \"Co. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!