Hibernate - Excessão desconhecida - HELP Please

12 respostas
vinicius_roc

Pessoal,

Me ajudem a decifrar e resolver esse misterio please.

Eu desenvolvi uma aplicação e criei um dominio na internet para mostrar para o cliente, para ele ver se é isso que ele realmente quer, para então terminar a aplicação.

Porem, as vezes recebo o erro abaixo e tenho que reiniar o TomCat para voltar a funcionar.

E não entendi oque é esse erro. Oque esta causando e como evita-lo.

Podem me ajudar por favor????

Jul 13, 2009 10:52:06 AM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 0, SQLState: 08003
Jul 13, 2009 10:52:06 AM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
MESSAGE: The last packet successfully received from the server was37464 milliseconds ago.The last packet sent successfully to the server was 37464 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.

STACKTRACE:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was37464 milliseconds ago.The last packet sent successfully to the server was 37464 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.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3270)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1932)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1912)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at MZSuporte.dao.Dao.readAll(Dao.java:33)
at action.UserAction.execute(UserAction.java:18)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3251)
... 38 more


** END NESTED EXCEPTION **

gradeço desde jah

12 Respostas

M

Posta o seu “hibernate.cfg.xml” ae…

vinicius_roc

Eu não utilizo XML, utilizo Annotations

ignacio83

Mais vc deve ter um arquivo que configura ou obtém o pool… Kd ele?

vinicius_roc

Disculpa gente

Viajei total. Deer...

Esta aqui ele:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://url/database</property>
    <property name="hibernate.connection.username">usuarios</property>
    <property name="hibernate.connection.password">**********</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.format_sql">true</property>
    <mapping class="MZSuporte.model.Usuarios"/>
    <mapping class="MZSuporte.model.Area"/>
  </session-factory>
</hibernate-configuration>
Trevisani

Cara, edita isso ai, nao deixa url, usuario e senha de um server aberto postado.

Trevisani

Ja tentou usar c3p0? Eh um pool de conexoes que pode resolver esse teu problema ai. De timouts e coisa do genero.
O legal que tu nunca precisa fechar a conexao, tu so pega a conexao, usar, e deixa o c3p0 se virar com o pool. Eu sempre uso, e nunca tive grandes problemas.

vinicius_roc

Não tentei não.

É só colocar isso no XML e ja esta funcionando??? Ou precisa de algum JAR??
<!-- configuration pool via c3p0--> 
<property name="c3p0.acquire_increment">1</property> 
<property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
<property name="c3p0.max_size">100</property> 
<property name="c3p0.max_statements">0</property> 
<property name="c3p0.min_size">10</property> 
<property name="c3p0.timeout">100</property> <!-- seconds --> 
<!-- DEPRECATED very expensive property name="c3p0.validate>-->

Vlw pela Dica

Abss

M

seria interessante colocar a property autoReconect = true,

&lt;property name="hibernate.connection.autoReconnect"&gt;true&lt;/property&gt;
Trevisani

Se eu nao me engano precisa sim, baixar o jar dele que eu acho que nao vem com o hibernate. Mas eh so fazer isso sim, adicionar ao cfg e ja eras.

Trevisani

Ah sim, dai tu usa a tua aplicacao normalmente, so que quando tu der um “open” o hibernate vai no pool do c3p0, so nao esquece que nao pode dar close() na connection, ao menos na versao do c3p0 que eu usava nao podia, ele ate reclamava na colsole “connection closed… are you calling connection.close()?”
Porque senao ele tem que ir la, e abrir ela denovo, e isso eh meio que custoso pro bd.

vinicius_roc

Dexo eu ver se entendi direito…

Não precisarei mais fazer assim: ?

dao.beginTransaction(); dao.getUsuariosDAO().create(user); dao.commit(); dao.close();

Só assim: ?

dao.getUsuariosDAO().create(user); dao.commit();

vinicius_roc

Trevisani

Deu certo muito obrigado.

Mas por enquanto apenas alterei o XML. Antes de alterar mais alguma coisa gostaria que me tirassem a duvida de cima.

Muito Obrigado

Criado 13 de julho de 2009
Ultima resposta 14 de jul. de 2009
Respostas 12
Participantes 4