Rumah >Java >javaTutorial >Bagaimana untuk Mencegah Kehilangan Sambungan Pangkalan Data Selepas 424 Jam dalam Boot Spring dengan Hibernate?
Isu timbul dalam aplikasi Spring Boot menggunakan JPA-Hibernate dengan MySQL apabila sambungan ke pangkalan data hilang selepas tempoh 424 jam. Log ralat memaparkan:
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'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
Untuk menangani isu ini, adalah disyorkan untuk mengkonfigurasi sifat sambungan yang sesuai dalam fail konfigurasi aplikasi (cth., application.properties):
<code class="properties"># Connection validation and pool configuration spring.datasource.max-active=10 spring.datasource.initial-size=5 spring.datasource.max-idle=5 spring.datasource.min-idle=1 # Periodic connection validation spring.datasource.test-while-idle=true spring.datasource.validation-query=SELECT 1 # Idle connection management spring.datasource.time-between-eviction-runs-millis=5000 spring.datasource.min-evictable-idle-time-millis=60000</code>
Ini tetapan membolehkan kumpulan sambungan untuk:
Dengan melaksanakan konfigurasi ini, kumpulan sambungan akan sentiasa menguji kesahihan sambungan dan menggantikan sambungan yang telah basi, memastikan sambungan pangkalan data yang stabil walaupun selepas tempoh tidak aktif yang berpanjangan.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Kehilangan Sambungan Pangkalan Data Selepas 424 Jam dalam Boot Spring dengan Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!