Rumah >pangkalan data >tutorial mysql >Mengapa Sambungan Pangkalan Data But Spring Saya Terputus Selepas Tidak Aktif, dan Bagaimana Saya Boleh Menghalangnya?

Mengapa Sambungan Pangkalan Data But Spring Saya Terputus Selepas Tidak Aktif, dan Bagaimana Saya Boleh Menghalangnya?

Linda Hamilton
Linda Hamiltonasal
2024-12-06 00:32:10447semak imbas

Why Are My Spring Boot Database Connections Dropping After Inactivity, and How Can I Prevent It?

Sambungan ke Pangkalan Data Terputus Melangkaui Jangka Masa Ditetapkan dalam Spring-Boot

Sambungan ke pangkalan data dalam aplikasi Spring-Boot menggunakan JPA dan Hibernate boleh hilang jika masa antara interaksi melebihi had tertentu. Isu ini selalunya disertai dengan mesej ralat yang menunjukkan isu sambungan kerana nilai "wait_timeout" pelayan telah melebihi nilai.

Untuk menangani masalah ini, penggunaan ciri Spring's testOnBorrow dan validationQuery adalah tidak digalakkan. Sebaliknya, penyelesaian yang lebih mantap ialah mengkonfigurasi tetapan berikut:

  • spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true: Dayakan penyambungan semula automatik dalam JDBC URL.
  • spring.datasource.test-while-idle=true: Uji sambungan semasa ia melahu.
  • spring.datasource.test-on-borrow=true: Uji sambungan sebelum ia dipinjam daripada kolam.
  • spring.datasource.validation-query=SELECT 1: Gunakan pengesahan pertanyaan untuk menyemak sambungan kesahan.
  • spring.datasource.time-between-eviction-runs-millis=5000: Tentukan kekerapan pemeriksaan pengesahan sambungan.
  • spring.datasource.min-evictable-idle-time- millis=60000: Tentukan had masa terbiar selepas itu sambungan akan diperiksa dan dialih keluar daripada pool.

Untuk mengelakkan potensi isu dengan sambungan aktif semasa transaksi, adalah disyorkan untuk mengesahkan sambungan pada permulaan transaksi dan memperoleh sambungan baharu jika perlu.

Tetapan konfigurasi ini akan membolehkan pengesahan sambungan tetap dan menghalang sambungan lapuk daripada terkumpul di dalam kolam. Akibatnya, sambungan ke pangkalan data harus kekal stabil walaupun untuk tempoh berpanjangan tanpa aktiviti.

Atas ialah kandungan terperinci Mengapa Sambungan Pangkalan Data But Spring Saya Terputus Selepas Tidak Aktif, dan Bagaimana Saya Boleh Menghalangnya?. 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