Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mencegah Kehilangan Sambungan Pangkalan Data Selepas 424 Jam dalam Boot Spring dengan Hibernate?

Bagaimana untuk Mencegah Kehilangan Sambungan Pangkalan Data Selepas 424 Jam dalam Boot Spring dengan Hibernate?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 18:38:06203semak imbas

How to Prevent Database Connection Loss After 424 Hours in Spring Boot with Hibernate?

Menyelesaikan 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:

  • Tetapkan bilangan maksimum sambungan aktif (spring.datasource.max-active).
  • Sahkan sambungan secara berkala (spring.datasource.test-while -melahu).
  • Alih keluar sambungan melahu jika ia tidak digunakan dalam masa yang ditetapkan (spring.datasource.min-evictable-idle-time-millis).

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn