Java.io.EOFException com C3P0 e Mysql

0 respostas
finotti
Pessoal, estou com problemas com o pool de conexões C3PO. Minha aplicação está disponível o dia todo, porém, fica ociosa por algumas horas (+ ou - 6 horas) E, passado esse tempo ocioso, se eu tentar fazer uma consulta ao banco de dados, está acontecendo o seguinte erro:
java.io.EOFException
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1394)
	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1538)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1929)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
	at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1224)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2248)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2208)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2189)
	at com.mysql.jdbc.Connection.commit(Connection.java:1153)
	at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301)
	at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200)
	at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)

** END NESTED EXCEPTION **

	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1713)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1929)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
	at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1224)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2248)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2208)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2189)
	at com.mysql.jdbc.Connection.commit(Connection.java:1153)
	at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301)
	at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200)
	at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)

8447946 [TP-Processor13] ERROR org.hibernate.transaction.JDBCTransaction  - JDBC commit failed
java.sql.SQLException: Communication link failure: java.io.EOFException, underlying cause: null
Estou usando MySQL 5, Hibernate + C3PO. Minhas configurações do pool:
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">10</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
Li outros tópicos semelhantes onde falaram que isso é um bug do C3PO, sendo recomendado trocar pelo DBCP do Jakarta. Mas também disseram que o pessoal do hibernate não recomenda o uso do DBCP :shock:

Alguém sabe o que pode ser?
[]'s

Criado 13 de novembro de 2008
Respostas 0
Participantes 1