Mysql
 sql >> Database >  >> RDS >> Mysql

ERRORE JDBC:08S01 a volte si verifica

Molto probabilmente lo sei anche tu

  1. Aprire le prese e non chiuderle. Nel tempo il numero di socket aperti diventa troppo grande e l'applicazione si arresta in modo anomalo.
  2. Stai aprendo troppi socket contemporaneamente. Forse perché hai un sacco di discussioni.

Immagino sia il numero 1. Ricontrolla il tuo codice e assicurati di chiudere tutti gli oggetti Connection e gli oggetti ResultSet.

Se stai incontrando il numero 2, potresti prendere in considerazione l'utilizzo di meno thread (dopo un certo punto avere troppi thread fa più male che bene) o l'utilizzo di un pool di connessioni come c3p0 che creerà solo un determinato numero di connessioni e consentirà ai tuoi thread di condividerle. L'uso di c3p0 è una buona idea in generale e dovrebbe anche consentire di rilevare il numero 1 più velocemente.

Una terza opzione consiste nell'utilizzare un'astrazione di livello superiore come JPA o JDO che si occuperà della gestione della connessione per te.