Ho una macchina che esegue un'app java che parla con un'istanza mysql in esecuzione sulla stessa istanza. l'app utilizza i driver jdbc4 di mysql. Continuo a ricevere com.mysql.jdbc.exceptions.jdbc4.CommunicationsException a volte casuali.jdbc4 CommunicationsException
Ecco l'intero messaggio.
Impossibile aprire la connessione JDBC per la transazione; eccezione annidata è
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was25899 milliseconds ago.The last packet sent successfully to the server was 25899 milliseconds ago, which is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
Per mysql, il valore di 'wait_timeout' globale e 'interactive_timeout' è impostato a 3600 secondi e 'connect_timeout' è impostato a 60 secondi. il valore di timeout di attesa è molto più alto dei 26 secondi (25899 msec). menzionato nella traccia dell'eccezione.
Uso dbcp per il pool di connessioni ed ecco la configurazione del bean di primavera per l'origine dati.
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db"/>
<property name="username" value="xxx"/>
<property name="password" value="xxx" />
<property name="poolPreparedStatements" value="false" />
<property name="maxActive" value="3" />
<property name="maxIdle" value="3" />
</bean>
Qualche idea sul perché questo potrebbe accadere? L'utilizzo di c3p0 risolverà il problema?
Thnx, questo sembra funzionare al momento. – letronje