IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Hibernate + C3P0


Sujet :

Hibernate Java

  1. #1
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Hibernate + C3P0
    Salut à tous,

    je viens vers vous aujourd'hui car cela fait plus d'une semaine que je suis à la recherche d'une solution mais je n'y arrive pas.
    Donc a savoir que j'ai un serveur mysql sur lequel je souhaite gardé mes connexion persistante même après le wait_timeout par défaut de 8h et donc pour cela j'utilise:

    Hbernate-core-4.3.4
    Hbernate-c3p0-4.3.4.final
    c3p0.0.9.2.1

    et voila mon fichier persistance.xml:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
     
     
     	<persistence-unit name="WifilibWebApp">
     
     			<provider>org.hibernate.ejb.HibernatePersistence</provider>
     
     			<class>com.entities.Borne</class>
     			<class>com.entities.Materiel</class>
     			<class>com.entities.Client</class>
     			<class>com.entities.Commande</class>
     			<class>com.entities.Offre</class>
     			<class>com.entities.Ip</class>
     
    	        <properties>
     
    	            <property name="hibernate.archive.autodetection" value="class" />
    	            <property name="hibernate.format_sql" value="true" />
    	            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
    	            <property name="hibernate.connection.url" value="jdbc:mysql://**.**.**.**:3306/bddTest" />
    	            <property name="hibernate.connection.username" value="user" />
    	            <property name="hibernate.connection.password" value="*********" />
    	            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
     
     
    	            <property name="hibernate.connection.provider_class"
              		value="org.hibernate.connection.C3P0ConnectionProvider" />       		
              	    <property name="hibernate.c3p0.max_statements" value="50" />
    				<property name="hibernate.c3p0.timeout" value="60" />
    				<property name="hibernate.c3p0.max_size" value="8" />
    				<property name="hibernate.c3p0.min_size" value="2" />
    				<property name="hibernate.c3p0.idle_test_period" value="90" />
    				<property name="hibernate.c3p0.validate" value="true" />
    				<property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1" />
     
    	        </properties>
    	</persistence-unit>
    </persistence>
    pour pouvoir réaliser mes tests j'ai fixé le wait_timeout de mysql à 120.
    Le soucis maintenant est que après 3min d'inactivité, si j'effectue une requête j'ai l'exception suivante qui survient:

    javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
    at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:524)
    at com.entities.TableManager.getClientById(TableManager.java:31)
    at com.actions.SearchClientBDDAction.execute(SearchClientBDDAction.java:47)
    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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:89)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2065)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838)
    at org.hibernate.loader.Loader.doQuery(Loader.java:909)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
    at org.hibernate.loader.Loader.doList(Loader.java:2553)
    at org.hibernate.loader.Loader.doList(Loader.java:2539)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
    at org.hibernate.loader.Loader.list(Loader.java:2364)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:496)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:231)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573)
    at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:495)
    ... 71 more
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet successfully received from the server was 435*312 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1127)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3715)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3604)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4155)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2212)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:116)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:80)
    ... 87 more
    Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3161)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3615)
    ... 96 more
    Erreur BDD: Merci de contacter un administrateur
    javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet

    Pourriez-vous m'aidé, car là je tourne en rond

    Merci d'avance,
    Yassine B.

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    as-tu regarder dans ton fichier de configuration mysql:
    my.ini

    les valeurs de :
    wait_timeout = ?

    interactive_timeout = ?

    connect_timeout = ?

    Eric

  3. #3
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bonjour Eric,

    j'ai effectivement regardé le fichier my.cnf de mysql pour modifier le wait_timeout que j'ai défini à 300 afin de tester ma solution.
    Néanmoins je n'ai pas fixé de valeur a interactive_timeout et connect_timeout.

    Elle ont une importance ?

    Cordialement

    Yass.

  4. #4
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    J'ai cherché un peu et j'ai vu que le connect_timeout correspond à la durée maximale d'attente de la réponse d'un serveur, qui par défaut est de 5S. Le interractive_tiemout correspond aux nom de secondes dans lequel mysql attend une activité de la part de la connexion avant de la fermé, par défaut, il est de 8h.

    Donc du coup je n'arrive pas à faire la différence avec le wait_timeout !?

    Et donc configurer ces variables pourrait répondre à mon problème ? J'ai du mal à voir comment.

    Je pensais que c'étais plutôt les valeurs configurer dans mon persistance.xml.


    Bref j'avoue que je suis un peu paumé du coup

  5. #5
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    la on va aller pas a pas:
    wait_timeout = The number of seconds the server waits for activity on a noninteractive connection before closing it.
    il doit etre le meme que celui que tu veux configurer dans le fichier de persistence.

    interactive_timeout = The number of seconds the server waits for activity on an interactive connection before closing it.
    donc 2 choses differentes.

    en passant peux-tu me donner les valeurs de :

    bind-address et de connect_timeout;

    Merci.

  6. #6
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bonjour Eric,

    Merci pour le temps que tu prend pour m'aider.

    Donc au sein de mon fichier de configuration mysql (my.cnf), j'ai volontairement omis de mentionner le bind-adress pour pouvoir autoriser l’accès à distance à mon serveur mysql et pour ce qui est du connect_timeout, il est pas définis au sein de mon fichier de conf (Donc j'imagine qu'il doit prendre la valeur par défaut).

    Du coup tu dis que la valeur du wait_timeout doit être le même que celui que je veux configurer dans le fichier de persistence (timeout ou idle_test_period ?) . Pourquoi donc ? Je pensais justement que ces valeurs la devaient être inférieur au wait_timeout ?!

    Cordialement,

    Yass.

  7. #7
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    sois le meme ou plus grand que ce que tu as defini, car si tu configure un temp plus long que celui, alors il te faudra configurer la reconnexion automatique dans ton fichier de persistence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ex_app?autoReconnect=true</property>
    Eric

  8. #8
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Donc si je comprend bien j'ai le choix. Soit je configure le timeout et le idle_test_period avec une valeur inférieur au wait_timeout de mysql et du coup je dois configurer la reconnexion automatique au niveau du fichier de persistance:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ex_app?autoReconnect=true</property>
    Ou alors je défini les valeur du timeout et le idel_test_period avec une valeur égale ou supérieur au wait_timeout.

    C'est bien ce que tu veux dire ??

    Si oui, lequel tu me conseilles ?

    Cordialement,

    Yass.

  9. #9
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    pour reduire les risques de timeout, il faudra permettre la recnonexion automatique. cela eviterait bien de desagrement.
    pour ma part, les deux possibilités devraient etre appliquées.

    Eric

  10. #10
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Salut,

    donc j'ai lancé un test avce la config suivante:

    MySQl:
    wait_timeout: 600 (//10 min)

    Persistance.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <persistence-unit name="bddTest">
     
     			<provider>org.hibernate.ejb.HibernatePersistence</provider>
     
     			<class>com.entities.Borne</class>
     			<class>com.entities.Materiel</class>
     			<class>com.entities.Client</class>
     			<class>com.entities.Commande</class>
     			<class>com.entities.Offre</class>
     			<class>com.entities.Ip</class>
     
    	        <properties>
     
    	            <property name="hibernate.archive.autodetection" value="class" />
    	            <property name="hibernate.format_sql" value="true" />
    	            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
    	            <property name="hibernate.connection.url" value="jdbc:mysql://**.**.**.**:3306/bddTest?autoReconnect=true" />
    	            <property name="hibernate.connection.username" value="user" />
    	            <property name="hibernate.connection.password" value="**************" />
    	            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
     
     
    	            <property name="hibernate.connection.provider_class"
              		value="org.hibernate.connection.C3P0ConnectionProvider" />       		
              	    <property name="hibernate.c3p0.max_statements" value="50" />
    				<property name="hibernate.c3p0.timeout" value="600" />
    				<property name="hibernate.c3p0.max_size" value="8" />
    				<property name="hibernate.c3p0.min_size" value="2" />
    				<property name="hibernate.c3p0.idle_test_period" value="600" />
    				<property name="hibernate.c3p0.validate" value="true" />
    				<property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1" />
     
    	        </properties>
    	</persistence-unit>

    Au lancement de l'application je vois bien que les valeurs défini dans le fichier de persistance ont bien étais pris en compte mais néanmoins avec une erreur:

    ...
    juin 17, 2014 2:46:50 PM org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {4.3.4.Final}
    juin 17, 2014 2:46:50 PM org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    juin 17, 2014 2:46:50 PM org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: HHH000021: Bytecode provider name : javassist
    juin 17, 2014 2:46:51 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
    INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
    juin 17, 2014 2:46:51 PM org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator instantiateExplicitConnectionProvider
    INFO: HHH000130: Instantiating explicit connection provider: org.hibernate.connection.C3P0ConnectionProvider
    juin 17, 2014 2:46:51 PM org.hibernate.c3p0.internal.C3P0ConnectionProvider configure
    INFO: HHH010002: C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://**.**.**.**:3306/bddTest?autoReconnect=true
    juin 17, 2014 2:46:51 PM org.hibernate.c3p0.internal.C3P0ConnectionProvider configure
    INFO: HHH000046: Connection properties: {user=user, password=****}
    juin 17, 2014 2:46:51 PM org.hibernate.c3p0.internal.C3P0ConnectionProvider configure
    INFO: HHH000006: Autocommit mode: false
    juin 17, 2014 2:46:51 PM com.mchange.v2.log.MLog <clinit>
    Infos: MLog clients using java 1.4+ standard logging.
    juin 17, 2014 2:46:51 PM com.mchange.v2.c3p0.C3P0Registry banner
    Infos: Initializing c3p0-0.9.2.1 [built 20-March-2013 10:47:27 +0000; debug? true; trace: 10]
    juin 17, 2014 2:46:51 PM com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
    Infos: Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@cdd9d427 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@9b547e4b [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2tgl5h921b4qnxsm6ddo3|c2b1d3, idleConnectionTestPeriod -> 600, initialPoolSize -> 2, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 600, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 8, maxStatements -> 50, maxStatementsPerConnection -> 0, minPoolSize -> 2, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@d4c495c1 [ description -> null, driverClass -> null, factoryClassLocation -> null, identityToken -> 2tgl5h921b4qnxsm6ddo3|1b52762, jdbcUrl -> jdbc:mysql://**.**.**.**:3306/bddAfone?autoReconnect=true, properties -> {user=******, password=******} ], preferredTestQuery -> SELECT 1, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> 2tgl5h921b4qnxsm6ddo3|1f5dc11, numHelperThreads -> 3 ]
    juin 17, 2014 2:46:51 PM org.hibernate.dialect.Dialect <init>
    INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
    juin 17, 2014 2:46:51 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation

    //Erreur:
    INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException


    juin 17, 2014 2:46:51 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
    INFO: HHH000397: Using ASTQueryTranslatorFactory
    ...

    Mais j'ai quand même prolongé le test, une fois l'appli lancé, j'exécute une requête qui marche parfaitement, et j'attend 15 min environ avant de d’exécuter une nouvelle requête avec lequel j’obtiens tjrs la même trace d'erreur que à l'origine:


    juin 17, 2014 2:59:25 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
    WARN: SQL Error: 0, SQLState: 08S01
    juin 17, 2014 2:59:25 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
    ERROR: Communications link failure

    The last packet successfully received from the server was 741 140 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
    javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
    at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:524)
    at com.entities.TableManager.getClientById(TableManager.java:30)
    at com.actions.SearchClientBDDAction.execute(SearchClientBDDAction.java:47)
    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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:89)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2065)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838)
    at org.hibernate.loader.Loader.doQuery(Loader.java:909)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
    at org.hibernate.loader.Loader.doList(Loader.java:2553)
    at org.hibernate.loader.Loader.doList(Loader.java:2539)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
    at org.hibernate.loader.Loader.list(Loader.java:2364)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:496)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:231)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573)
    at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:495)
    ... 71 more
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet successfully received from the server was 741 140 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1127)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3715)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3604)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4155)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2212)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:116)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:80)
    ... 87 more
    Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3161)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3615)
    ... 96 more
    javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet

    Dois-je augmenter mes valeurs dans mon fichier de persistance ? ou bien différencier les valeurs du timeout et de idle_test_period ??

    Cordialement,
    Yass.

  11. #11
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    ajoutes ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.c3p0.testConnectionOnCheckout" value="true" />
    Eric

  12. #12
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Je viens d'effectuer le même teste en ajoutant cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.c3p0.testConnectionOnCheckout" value="true" />
    mais j'ai toujours la même trace d'erreur


    Yass.

  13. #13
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    as tu essayé ceci:

    hibernate.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    hibernate.c3p0.max_size=20
    hibernate.c3p0.idle_test_period=30
    c3p0.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    c3p0.checkoutTimeout=10000
    c3p0.maxIdleTime=80
    c3p0.testConnectionOnCheckin=true
    c3p0.minPoolSize=1
    c3p0.maxPoolSize=10
    c3p0.maxIdleTime=80
    c3p0.automaticTestTable=test_c3p0
    c3p0.acquireRetryAttemps=100000
    c3p0.acquireRetryDelay=30
    c3p0.breakAfterAcquireFailure=false
    ou plus simple peux-tu me donner exactement comment tu as configurer ton programme, je vais faire un test et voir ce qui cloche,
    car j´ai l´imtime conviction que la configuration de ton cp30 n´est pas bonne.

    Eric

  14. #14
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut
    le fichier de configuration de c3p0 se fait a travers le fichier c3p0.properties situé a la base de ta classpath.
    et c´est la dedans que tu dois configurer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    # c3p0.properties
    c3p0.testConnectionOnCheckout=true
    Eric

  15. #15
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bonjour éric,

    il est vrai que je n'ai pas définis le fichier c3p0.properties car dans les exemples que j'ai vu dans le net, beaucoup ne l'utilise pas, il définissent tout dans le fichier de persistance.xml.

    Sinon pour la configuration de mon projet qui est une application web, j'utilise Struts2 et hibernate pour la persistance. Voila les jar que j'utilise pour ma persistance et leur version respective:

    hibernate-core-4.3.4.Final.jar
    hibernate-c3p0-4.3.4.Final.jar
    c3p0-0.9.2.1.jar

    la version de mysql que j'utilise est la 5.6.17.

    Et sinon pour la configuration de mon fichier persistance.xml il est le même que ce que j'ai mis dans mon 1er message, je n'ai fait pour le moment que rajouter de nouvelle propriétés ou bien modifié les valeurs.

    Et sinon quand tu dis que je dois définir le fichier c3p0.properties à la racine de mon classpath, tu veux dire que je peux le mettre au même niveau que mon fichier de persistance ?

    Cordialement,
    Yass.

    PS: je t'ai envoyé un mp, si tu veux le lire

  16. #16
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    cree un fichier :
    et mets le a la racine de ton projet
    et a l´interieur, mets cette propiété:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    # c3p0.properties
    c3p0.checkoutTimeout=10000
    c3p0.maxIdleTime=80
    c3p0.testConnectionOnCheckin=true
    c3p0.minPoolSize=1
    c3p0.maxPoolSize=10
    c3p0.maxIdleTime=80
    c3p0.automaticTestTable=test_c3p0
    c3p0.acquireRetryAttemps=100000
    c3p0.acquireRetryDelay=30
    c3p0.breakAfterAcquireFailure=false
    et dans ton fichier de persistence, n´oublie pas de mettre ceci sinon cela ne marchera pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <property name="hibernate.c3p0.validate">true</property>
    <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property>
    sans cela, l´ORM prendra la connection JDBC et non la connection c3p0.
    Essaies cela et dis nous si cela a fonctionné ou envoies nous l´erreur afficher.

    Eric

  17. #17
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Salut tout le monde,

    désolé pour la réponse tardif, mais ces derniers jours j'ai eu pas mal de contre temps et j'ai mis de coté un peu ce problème.
    Mais avant de tester ta solution eric, je voulais savoir si :

    c3p0.automaticTestTable=test_c3p0

    signifie si il va tester une table au nom de test_c3p0 que je me dois de créer au sein de ma base ?

    Cordialement,
    BADIH Yassine

  18. #18
    Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bon j'ai au final tester les solution et tjrs rien, voila le message d'erreur:

    juil. 03, 2014 4:56:58 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
    WARN: SQL Error: 0, SQLState: 08S01
    juil. 03, 2014 4:56:58 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
    ERROR: Communications link failure

    The last packet successfully received from the server was 662*640 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.


  19. #19
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Peux-tu m'envoyer ton projet entier, je vais te donner la solution.
    Eric

Discussions similaires

  1. Hibernate-c3p0 et multiples connexions
    Par Alexr dans le forum Hibernate
    Réponses: 3
    Dernier message: 04/09/2014, 18h16
  2. JNDI + C3P0 + Hibernate : problème de config
    Par bisounux dans le forum Hibernate
    Réponses: 3
    Dernier message: 22/06/2010, 12h25
  3. [Data] Problème connexion C3P0 Hibernate
    Par kilicool dans le forum Spring
    Réponses: 1
    Dernier message: 05/11/2009, 16h26
  4. hibernate et c3p0, l'application ne tourne plus
    Par ouedmouss dans le forum Hibernate
    Réponses: 2
    Dernier message: 01/02/2008, 08h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo