Както предполагате, това е защото mysql затваря неактивни връзки след всяко wait_timeout пасове; имате някои опции да заобиколите проблема си:
- използвайте мениджър на пула за връзки, като c3p0 или apache DBCP . Това ще се погрижи за повторното потвърждаване на връзките при поискване, в крайна сметка можете да посочите коя заявка да се изпълни, за да се тества дали връзката е жива.
- задайте
wait_timeoutв mysql, достатъчно голям за вашия случай на използване (по подразбиране е 8 часа). - настройте планирана задача (например с помощта на quartz ), който опреснява връзките, "пингувайки" на mysql сървъра.