Sto eseguendo un'applicazione Java
che crea 50 thread come parte di un threadpool; ogni thread in esecuzione in un oggetto che legge 1000 righe univoche alla volta da una tabella MySQL
. Quindi ogni oggetto ha la sua classe SqlManager
creata che può aprire una connessione Sql.
wait_timeout
è 28800, che sarebbe 8 ore (sono sorpreso che sia così lungo), quindi presumo che una connessione una volta stabilita, non scadrà fino a 8 ore sono finite. Il mio programma funziona per oltre 8 ore e ho aumentato anche la variabile max_connections
a 5000.
Attualmente ho programmato ciascun oggetto thread per verificare se sono trascorse 2 ore e, in caso affermativo, chiudere la connessione MySQL
e riaprire la connessione.
Questa è una tecnica appropriata per affrontare il problema o la connessione scade solo se non è stata utilizzata per nessuna query per un lungo periodo? Il mio programma interroga costantemente il database in tutte quelle ore.