Jak navrhujete, je to proto, že mysql uzavírá nečinná připojení po každém wait_timeout
průkazy; máte několik možností, jak váš problém obejít:
- použijte správce fondu připojení, jako je c3p0 nebo apache DBCP . To se postará o opětovné ověření připojení na vyžádání, případně můžete určit, který dotaz se má spustit, aby se otestovalo, zda je připojení aktivní.
- nastavit
wait_timeout
v mysql dostatečně velké pro váš případ použití (výchozí je 8 hodin). - nastavit naplánovanou úlohu (například pomocí quartz ), který obnovuje připojení, "ping" serveru mysql.