Như bạn đề xuất, đó là do mysql đóng các kết nối không hoạt động sau mỗi wait_timeout
vượt qua; bạn có một số tùy chọn để giải quyết vấn đề của mình:
- sử dụng trình quản lý nhóm kết nối, như c3p0 hoặc apache DBCP . Thao tác này sẽ xử lý việc xác thực lại các kết nối theo yêu cầu, cuối cùng bạn có thể chỉ định truy vấn nào sẽ chạy để kiểm tra xem kết nối còn tồn tại hay không.
- đặt
wait_timeout
trong mysql đủ lớn cho trường hợp sử dụng của bạn (mặc định là 8 giờ). - thiết lập một tác vụ đã lên lịch (ví dụ:sử dụng thạch anh ) làm mới các kết nối, "ping" máy chủ mysql.