Seperti yang Anda sarankan, itu karena mysql menutup koneksi idle setelah setiap wait_timeout
melewati; Anda memiliki beberapa opsi untuk mengatasi masalah Anda:
- gunakan pengelola kumpulan koneksi, seperti c3p0 atau apache DBCP . Ini akan menangani validasi ulang koneksi berdasarkan permintaan, pada akhirnya Anda dapat menentukan kueri mana yang akan dijalankan untuk menguji apakah koneksi hidup.
- setel
wait_timeout
di mysql cukup besar untuk kasus penggunaan Anda (default adalah 8 jam). - menyiapkan tugas terjadwal (misalnya menggunakan quartz ) yang menyegarkan koneksi, "ping" server mysql.