Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Tamat Masa Kolam Sambungan Boot Spring dengan Hibernate dan MySQL?

Bagaimana untuk Membetulkan Tamat Masa Kolam Sambungan Boot Spring dengan Hibernate dan MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-18 01:32:10875semak imbas

How to Fix Spring Boot Connection Pool Timeouts with Hibernate and MySQL?

Tamat Masa Kolam Sambungan dalam But Spring dengan Hibernate dan MySQL

Apabila menggunakan Spring Boot, JPA-Hibernate dan MySQL, pengguna mungkin menghadapi tamat masa ralat yang menunjukkan isu "CommunicationsException". Untuk menangani isu ini, pendekatan yang disyorkan melibatkan mendayakan pengesahan sambungan dan menentukan bilangan maksimum sambungan yang dibenarkan dalam kumpulan.

Konfigurasikan Sifat Kolam Sambungan:

Anda boleh dengan berkesan konfigurasikan kolam sambungan anda dengan menetapkan sifat berikut dalam anda application.properties:

  • spring.datasource.max-active: Bilangan maksimum sambungan aktif (lalai: 8)
  • spring.datasource.initial-size: Bilangan sambungan awal ( lalai: 0)
  • spring.datasource.max-idle: Bilangan maksimum sambungan melahu (lalai: 8)
  • spring.datasource.min-idle: Bilangan minimum sambungan melahu (lalai: 0)
  • spring.datasource.time-between-eviction-runs-millis: Masa antara pengesahan sambungan cek (lalai: 5000 ms)
  • spring.datasource.min-evictable-idle-time-millis: Masa melahu minimum sebelum sambungan diusir (lalai: 60000 ms)

Dayakan Sambungan Pengesahan:

Untuk mengesahkan sambungan secara berkala dan mengalih keluar sambungan yang rosak daripada kolam, tetapkan sifat berikut:

  • spring.datasource.test-while-idle: Sahkan sambungan semasa ia melahu (lalai: false)
  • spring.datasource.test- on-borrow: Sahkan sambungan sebelum meminjamnya dari kolam (lalai: false)
  • spring.datasource.validation-query: Pertanyaan SQL untuk dilakukan untuk pengesahan sambungan (lalai: PILIH 1)

Pendekatan Alternatif (Tidak Disyorkan):

Walaupun tidak disyorkan, anda juga boleh menentukan autoReconnect=true dalam URL JDBC untuk menyambung semula secara automatik apabila tamat masa berlaku:

spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true

Walau bagaimanapun, pendekatan ini mungkin membawa kepada isu semasa urus niaga aktif apabila penyambungan semula berlaku.

Dengan melaksanakan tetapan ini, anda boleh memastikan sambungan aktif diuji dan dialih keluar apabila melahu, menghalang ralat tamat masa dan mengekalkan kestabilan sambungan aplikasi anda ke pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Tamat Masa Kolam Sambungan Boot Spring dengan Hibernate dan MySQL?. 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