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