Hal-hal yang dapat Anda coba:
-
setMaxWait(-1)
pada BasicDataSource. Itu memberitahunya untuk menunggu koneksi tanpa batas. -
Periksa apakah
wait_timeout
di server MySQL Anda diatur ke default 8h. -
Setel
?autoReconnect=true
di URL JDBC Anda -
setTestOnBorrow(true)
pada BasicDataSource. Ini akan mencegahnya membagikan koneksi basi tetapi akan menambah overhead ke aplikasi Anda (meskipun jika Anda sudah mendapatkan satu kueri yang begitu panjang, Anda mungkin tidak akan menyadari bagian itu).
Secara umum, saya merasa ide yang buruk untuk terus menggunakan kembali koneksi. Bagi saya, tujuan memiliki kolam adalah saya tidak perlu melakukan itu.
Apakah pertanyaan Anda transaksional? Apakah beberapa kueri yang sangat panjang mengunci tabel utama?