Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Koneksi ke Db mati setelah>4<24 di spring-boot jpa hibernate

Cara termudah adalah dengan menentukan autoReconnect properti di url JDBC, meskipun ini bukan pendekatan yang disarankan.

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

Ini dapat memberikan masalah ketika Anda memiliki koneksi aktif dan selama transaksi terjadi sesuatu dan koneksi ulang akan terjadi. Ini tidak akan memberikan masalah ketika koneksi divalidasi pada awal transaksi dan koneksi baru diperoleh di awal.

Namun mungkin lebih baik untuk mengaktifkan validasi koneksi Anda selama masa pakai aplikasi Anda. Untuk ini, Anda dapat menentukan beberapa properti .

Pertama mulai dengan menentukan jumlah koneksi maksimum yang Anda izinkan untuk kumpulan. (Untuk membaca tentang menentukan ukuran kumpulan maksimum, baca ini ).

spring.datasource.max-active=10

Anda juga mungkin ingin menentukan jumlah koneksi awal

spring.datasource.initial-size=5

Selanjutnya Anda ingin menentukan jumlah minimum dan maksimum koneksi idle.

spring.datasource.max-idle=5
spring.datasource.min-idle=1

Untuk memvalidasi koneksi, Anda perlu menentukan kueri validasi dan kapan harus memvalidasi. Saat Anda ingin memvalidasi secara berkala, alih-alih saat koneksi diambil dari kumpulan (ini untuk mencegah koneksi terputus di kumpulan Anda).

spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1

CATATAN: Penggunaan validation-query sebenarnya tidak disarankan karena JDBC4 memiliki cara yang lebih baik/berbeda dalam melakukan validasi koneksi. HikariCP akan secara otomatis memanggil metode validasi JDBC jika tersedia.

Sekarang Anda juga memvalidasi saat koneksi tidak aktif, Anda perlu menentukan seberapa sering Anda ingin menjalankan kueri ini untuk koneksi dan kapan koneksi dianggap menganggur.

spring.datasource.time-between-eviction-runs-millis=5000 (this is the default)
spring.datasource.min-evictable-idle-time-millis=60000 (this is also default)

Ini semua akan memicu validasi koneksi (idle) Anda dan ketika pengecualian terjadi atau periode idle telah berlalu, koneksi Anda akan dihapus dari kumpulan.

Dengan asumsi Anda menggunakan Tomcat JDBC sebagai kumpulan koneksi ini adalah bacaan yang bagus tentang apa dan bagaimana mengonfigurasi.

PERBARUI: Spring Boot 2.x mengalihkan kumpulan koneksi default ke HikariCP alih-alih Tomcat JDBC.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP &mySQL:Tahun 2038 Bug:Apa itu? Bagaimana cara mengatasinya?

  2. mysql periksa apakah angka berada dalam daftar yang dipisahkan koma

  3. Menghapus baris dengan MySQL LEFT JOIN

  4. Bagaimana Operator LIKE Bekerja di MySQL

  5. Objek kelas DateTime tidak dapat dikonversi ke string