-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Perte de la connexion avec mysql au bout de 8h
PostPosted: Mon Jun 12, 2006 9:26 am 
Newbie

Joined: Thu Jan 19, 2006 12:09 pm
Posts: 3
Bonjour,

Dans mon application, j'utilise hibernate 3.1 avec mysql5.0, eclipse 3 et tomcat 5.
Au bout de huit heures, je perds la connexion avec la base de données mysql, ce qui est normal je crois. Ce qui ne l'est pas, c'est qu'hibernate de ne se reconnecte pas de façon automatique. j'ai essayé plusieurs pools de connexion différents, rien n'y fait, j'ai une erreur.


Voici mon fichier de configuration, avec le pool DBCP (j'ai également le jar dans mon classpath) :

Code:
<hibernate-configuration>
<session-factory>

<!-- local connection properties -->
<property name="hibernate.connection.url">
jdbc:mysql://localhost/maBase?autoReconnect=true
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="hibernate.connection.username">login</property>
<property name="hibernate.connection.password">
secret
</property>
<!-- property name="hibernate.connection.pool_size"></property -->

<property name="hibernate.connection.autoReconnect">true</property>
<property name="hibernate.connection.autoReconnectForPools">true</property>
<property name="hibernate.connection.is-connection-validation-required">true</property>


<!--### Apache DBCP Connection Pool ###-->
<!--connection pool-->
<property name="hibernate.dbcp.maxActive">10</property>
<property name="hibernate.dbcp.whenExhaustedAction">1</property>
<property name="hibernate.dbcp.maxWait">20000</property>
<property name="hibernate.dbcp.maxIdle">10</property>

<!-- prepared statement cache-->
<property name="hibernate.dbcp.ps.maxActive">10</property>
<property name="hibernate.dbcp.ps.whenExhaustedAction">1</property>
<property name="hibernate.dbcp.ps.maxWait">20000</property>
<property name="hibernate.dbcp.ps.maxIdle">10</property>

<!-- optional query to validate pooled connections:-->
<property name="hibernate.dbcp.validationQuery">select 1</property>
<property name="hibernate.dbcp.testOnBorrow">true</property>
<property name="hibernate.dbcp.testOnReturn">true</property>


<!-- dialect for MySQL -->
<property name="dialect">
com.osiris.etats.MySQLInnoDBDialectPlus
</property>

<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="current_session_context_class">thread</property>

<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">false</property>
<property name="hibernate.use_sql_comments">true</property>

<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
<property name="hibernate.transaction.flush_before_completion">
true
</property>
<property name="hibernate.transaction.auto_close_session">
true
</property>


<!-- Mapping files -->
....
</session-factory>
</hibernate-configuration>



Voici l'erreur au bout de 8 heures :


Code:
2006-06-07 10:46:56 ERROR [JDBCExceptionReporter] Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Broken pipe

STACKTRACE:

java.net.SocketException: Broken pipe
   at java.net.SocketOutputStream.socketWrite0(Native Method)
   at java.net.SocketOutputStream.socketWrite(Unknown Source)
   at java.net.SocketOutputStream.write(Unknown Source)
   at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
   at java.io.BufferedOutputStream.flush(Unknown Source)
   at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2692)
   at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2621)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1552)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1030)
   at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139)
   at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
   at org.hibernate.loader.Loader.doQuery(Loader.java:662)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
   at org.hibernate.loader.Loader.doList(Loader.java:2150)
   at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
   at org.hibernate.loader.Loader.list(Loader.java:2024)
   at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:369)
   at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:300)
   at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:146)
   at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1093)
   at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
   at com.osiris.services.studiovisualisation.Accueil.rechercherAffairesModifiees(Accueil.java:64)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at flashgateway.adapter.java.JavaAdapter.invokeFunction(JavaAdapter.java:55)
   at flashgateway.filter.AdapterFilter.invoke(AdapterFilter.java:117)
   at flashgateway.filter.MessageSecurityFilter.invoke(MessageSecurityFilter.java:144)
   at flashgateway.filter.ServiceNameFilter.invoke(ServiceNameFilter.java:101)
   at flashgateway.filter.EnvelopeFilter.invoke(EnvelopeFilter.java:102)
   at flashgateway.filter.SessionFilter.invoke(SessionFilter.java:28)
   at flashgateway.filter.LicenseFilter.invoke(LicenseFilter.java:57)
   at flashgateway.filter.ErrorFilter.invoke(ErrorFilter.java:39)
   at flashgateway.filter.LogFilter.invoke(LogFilter.java:46)
   at flashgateway.filter.BatchProcessFilter.invoke(BatchProcessFilter.java:63)
   at flashgateway.filter.PacketSecurityFilter.invoke(PacketSecurityFilter.java:68)
   at flashgateway.filter.DebugFilter.invoke(DebugFilter.java:38)
   at flashgateway.filter.SerializationFilter.invoke(SerializationFilter.java:89)
   at flashgateway.Gateway.invoke(Gateway.java:217)
   at flashgateway.controller.GatewayServlet.service(GatewayServlet.java:69)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
   at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



Last packet sent to the server was 2 ms ago.
2006-06-07 10:46:56 ERROR [JDBCTransaction] JDBC rollback failed
java.sql.SQLException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:


** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Broken pipe

STACKTRACE:

java.net.SocketException: Broken pipe



J'ai également essayé d'utiliser le pool C3P0 d'hibernate, mais à la première requête, j'ai une erreur sur : com/mchange/v2/c3p0/PoolConfig
Savez-vous pourquoi ?
Quel serait l'avantage d'utiliser une data source ?

je vous remercie.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jun 25, 2006 4:59 pm 
Expert
Expert

Joined: Tue Dec 28, 2004 7:02 am
Posts: 573
Location: Toulouse, France
Ce problème est connu , mais je ne sais pas s'il provient du SGBD ou de H3, je pense que c la BD.
http://forum.java.sun.com/thread.jspa?t ... ID=4190478

De plus, j'ai déjà entendu dire que les pools de connexion capables de se relever d'une erreur étaient rares. Je n'ai pas du tout vérifié cette assertion, mais c peut-être la cause de ton problème.

Je ne sais pas s'il n'est pas possible de faire pareil avec H3, sûrement que si, mais une Datasource dans Tomcat par exemple (regarde avec la webapp d'admin, c plus facile), tu peux configurer une requête qui sera exécutée toutes les n minutes dans le tube de la datasource. Ça permet d'éviter qu'elle ne crève toute seule si elle n'est pas utilisée (que ce soit à cause d'un timeout de la socket de l'OS ou que sais-je encore).

Je pense que cette fonctionnalité doit être présente dans H3, mais je n'ai jamais regardé. Si tu la trouves, ça m'intéresse de savoir comment on configure ça :-). (Ou alors dans la conf de C3P0, ce qui je pense doit aussi exister).

_________________
Baptiste
PS : please don't forget to give credits below if you found this answer useful :)


Top
 Profile  
 
 Post subject: Problems avec hibernate-3.2.0 et MySQL
PostPosted: Fri Aug 25, 2006 1:46 pm 
Newbie

Joined: Tue May 10, 2005 2:32 pm
Posts: 14
Location: Quito, Ecuador South America
Bonjour,
Nous avons le meme problem que toi. (pardon por mon francais il est long temp que je ne practique).
Je pense que ce problème est a la configuration du hibernate-3.2.0.cr3 (ou avec les outre jars, EHCache....), parsque avec Hibernate 2.1 j'ai jamais perdu la connexion avec la base. Et je travail avec le meme JDBC et MySQL.

Quand je travail avec mon application de Hibernate 2.1 je ne perds pas la cponexion mais quand je travail avec hibernate-3.2.0 je ne peux pas connecte e j´ai le suivant error:
Si tu trouve une solution, s´il vous plais, escrit.

Code:
2006-08-25 11:56:22,528 ERROR [http-8080-Processor25] util.JDBCExceptionReporter (JDBCExceptionReporter.java:72) - Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:3124)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1149)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1262)
   at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
   at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
   at org.hibernate.loader.Loader.doQuery(Loader.java:662)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
   at org.hibernate.loader.Loader.doList(Loader.java:2145)
   at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
   at org.hibernate.loader.Loader.list(Loader.java:2024)
   at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:392)
   at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:333)
   at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
   at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
   at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
   at com.iportal.biz.LanguageUtils.getLanguage(LanguageUtils.java:78)
   at com.iportal.ctrl.security.LanguageFilter.setLocaleSettings(LanguageFilter.java:56)
   at com.yage.servlet.LocaleSettingsFilter.doFilter(LocaleSettingsFilter.java:67)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
   at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
   at java.lang.Thread.run(Thread.java:595)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.

_________________
Hernan Leon
Mindsoft


Top
 Profile  
 
 Post subject: Problems avec hibernate-3.2.0 et MySQL
PostPosted: Fri Aug 25, 2006 1:47 pm 
Newbie

Joined: Tue May 10, 2005 2:32 pm
Posts: 14
Location: Quito, Ecuador South America
Bonjour,
Nous avons le meme problem que toi. (pardon por mon francais il est long temp que je ne practique).
Je pense que ce problème est a la configuration du hibernate-3.2.0.cr3 (ou avec les outre jars, EHCache....), parsque avec Hibernate 2.1 j'ai jamais perdu la connexion avec la base. Et je travail avec le meme JDBC et MySQL.

Quand je travail avec mon application de Hibernate 2.1 je ne perds pas la cponexion mais quand je travail avec hibernate-3.2.0 je ne peux pas connecte e j´ai le suivant error:
Si tu trouve une solution, s´il vous plais, escrit.

Code:
2006-08-25 11:56:22,528 ERROR [http-8080-Processor25] util.JDBCExceptionReporter (JDBCExceptionReporter.java:72) - Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:3124)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1149)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1262)
   at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
   at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
   at org.hibernate.loader.Loader.doQuery(Loader.java:662)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
   at org.hibernate.loader.Loader.doList(Loader.java:2145)
   at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
   at org.hibernate.loader.Loader.list(Loader.java:2024)
   at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:392)
   at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:333)
   at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
   at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
   at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
   at com.iportal.biz.LanguageUtils.getLanguage(LanguageUtils.java:78)
   at com.iportal.ctrl.security.LanguageFilter.setLocaleSettings(LanguageFilter.java:56)
   at com.yage.servlet.LocaleSettingsFilter.doFilter(LocaleSettingsFilter.java:67)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
   at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
   at java.lang.Thread.run(Thread.java:595)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.

_________________
Hernan Leon
Mindsoft


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.