Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mencegah Tamat Masa Sambungan dalam Aplikasi Spring Boot Menggunakan JPA-Hibernate dan MySQL?

Bagaimana untuk Mencegah Tamat Masa Sambungan dalam Aplikasi Spring Boot Menggunakan JPA-Hibernate dan MySQL?

Barbara Streisand
Barbara Streisandasal
2024-10-25 00:09:02690semak imbas

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

Tamat Masa Sambungan dalam But Spring dengan Jpa-Hibernate dan MySQL

Aplikasi Spring Boot selalunya menggunakan rangka kerja JPA-Hibernate untuk memudahkan interaksi pangkalan data. Walau bagaimanapun, cabaran biasa yang dihadapi ialah kegagalan sambungan selepas selang masa tertentu, terutamanya apabila berurusan dengan MySQL sebagai pangkalan data asas.

Dalam senario sedemikian, log aplikasi biasanya memaparkan mesej ralat yang menunjukkan, "Paket terakhir berjaya diterima daripada pelayan ialah X milisaat yang lalu...," dengan X melebihi nilai tamat masa menunggu yang dikonfigurasikan pelayan.

Untuk menangani isu ini, beberapa pendekatan telah dicadangkan, termasuk penggunaan spring.datasource.testOnBorrow =true dan ciri spring.datasource.validationQuery. Walau bagaimanapun, kaedah ini secara amnya tidak digalakkan.

Penyelesaian Disyorkan: Laksanakan Pengesahan Sambungan

Penyelesaian pilihan adalah untuk melaksanakan pengesahan sambungan sepanjang jangka hayat aplikasi. Ini boleh dicapai dengan mengkonfigurasi sifat berikut:

  • spring.datasource.max-active: Tentukan sambungan aktif maksimum yang dibenarkan dalam kolam.
  • spring.datasource.initial-size : Tentukan bilangan awal sambungan untuk dibuat dalam kolam.
  • spring.datasource.max-idle dan spring.datasource.min-idle: Tetapkan sambungan melahu minimum dan maksimum.
  • spring .datasource.test-while-idle=true: Sahkan sambungan semasa tempoh terbiar.
  • spring.datasource.test-on-borrow=true: Sahkan sambungan apabila mendapatkannya daripada kumpulan.
  • spring.datasource.validation-query: Sediakan pertanyaan pengesahan untuk menguji sambungan.

Tetapan ini mendayakan pengesahan berkala sambungan semasa ia melahu, membenarkan kumpulan mengesan dan mengalih keluar sambungan yang rosak.

Pengesahan Sambungan Automatik dalam HikariCP

Disebabkan penggunaan Spring Boot 2.x terhadap HikariCP sebagai kumpulan sambungan lalainya, pengesahan sambungan kini dilakukan secara automatik oleh HikariCP apabila menggunakan mekanisme pengesahan JDBC.

Oleh itu, dengan mendayakan pengesahan dan menyediakan konfigurasi yang sesuai untuk pengurusan sambungan, adalah mungkin untuk mengurangkan ralat tamat masa sambungan dan memastikan interaksi pangkalan data yang boleh dipercayai dalam aplikasi Spring Boot menggunakan JPA-Hibernate dengan MySQL.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Tamat Masa Sambungan dalam Aplikasi Spring Boot Menggunakan JPA-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