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 :

[STRUTS/HIBERNATE] Problème d'exécution de requête


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Par défaut [STRUTS/HIBERNATE] Problème d'exécution de requête
    Salut tout le monde,

    Je développe actuellement une application avec Struts et Hibernate. Dans mes actions Struts je fais des requete sur mes objets générés par Hibernate, jusque là pas de problèmes.
    Par contre mes requetes ne marche plus lorsque je laisse tourner mon Tomcat toute la nuit et que je réessaie le lendemain mais elles marchent toujours apres 1 ou 2h dattente. A priori ce n'est pas à cause de Struts parce que les pages statiques fonctionnent toujours, mais ce sont les pages qui font appellent à la base de données qui ne passent plus.

    J'ai bien fais attention à clore ma session Hibernate à la fin de chaque requete. Pour ouvrir et fermer mes sessions Hibernate à chaque fois, j'utilise la classe HibernateUtil fournit par la doc officielle à l'url http://www.hibernate.org/hib_docs/re...uickstart.html en bas de la page.

    L'erreur affichée dans ma console est la suivante :


    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    net.sf.hibernate.exception.GenericJDBCException: Could not execute query
            at net.sf.hibernate.exception.ErrorCodeConverter.handledNonSpecificExcep
    tion(ErrorCodeConverter.java:90)
            at net.sf.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConver
    ter.java:79)
            at net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionH
    elper.java:29)
            at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4131)
            at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1557)
            at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1531)
            at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1523)
            at gdf.creatic.struts.front.action.TemoignagelistefrontAction.execute(Te
    moignagelistefrontAction.java:63)
            at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
    tProcessor.java:419)
            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
    va:224)
            at org.apache.struts.action.ActionServlet.process(ActionServlet.java:119
    4)
            at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:237)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:157)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:214)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
    ContextValve.java:198)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:152)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:137)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:118)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:102)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
     
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
    0)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :799)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ssConnection(Http11Protocol.java:705)
            at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
    :577)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:683)
            at java.lang.Thread.run(Thread.java:534)
    Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure d
    ue to underlying exception:
     
    ** BEGIN NESTED EXCEPTION **
     
    java.net.SocketException
    MESSAGE: Software caused connection abort: socket write error
     
    STACKTRACE:
     
    java.net.SocketException: Software caused connection abort: socket write error
            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:66
    )
            at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
            at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2616)
            at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2547)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1512)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1622)
            at com.mysql.jdbc.Connection.execSQL(Connection.java:2385)
            at com.mysql.jdbc.Connection.execSQL(Connection.java:2306)
            at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
    va:1877)
            at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:
    1722)
            at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:89)
            at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:880)
            at net.sf.hibernate.loader.Loader.doQuery(Loader.java:273)
            at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections
    (Loader.java:138)
            at net.sf.hibernate.loader.Loader.doList(Loader.java:1063)
            at net.sf.hibernate.loader.Loader.list(Loader.java:1054)
            at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
            at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1554)
            at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1531)
            at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1523)
            at gdf.creatic.struts.front.action.TemoignagelistefrontAction.execute(Te
    moignagelistefrontAction.java:63)
            at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
    tProcessor.java:419)
            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
    va:224)
            at org.apache.struts.action.ActionServlet.process(ActionServlet.java:119
    4)
            at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:237)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:157)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:214)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
    ContextValve.java:198)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:152)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:137)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:118)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:102)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
            at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
    eContext.java:104)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:520)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
     
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
    0)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :799)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ssConnection(Http11Protocol.java:705)
            at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
    :577)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:683)
            at java.lang.Thread.run(Thread.java:534)
     
     
    ** END NESTED EXCEPTION **
     
     
            at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2634)
            at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2547)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1512)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1622)
            at com.mysql.jdbc.Connection.execSQL(Connection.java:2385)
            at com.mysql.jdbc.Connection.execSQL(Connection.java:2306)
            at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
    va:1877)
            at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:
    1722)
            at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:89)
            at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:880)
            at net.sf.hibernate.loader.Loader.doQuery(Loader.java:273)
            at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections
    (Loader.java:138)
            at net.sf.hibernate.loader.Loader.doList(Loader.java:1063)
            at net.sf.hibernate.loader.Loader.list(Loader.java:1054)
            at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
            at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1554)
            ... 33 more




    Aurais-je oublié qqch ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    bonjour,

    Hibernate est fourni avec un pool de connexion minimaliste ne pouvant fonctionner plus de 8 heures d'affillée.
    Tu dois utiliser un pool de connexion tel que C3P0, DBCP, proxool.

    http://www.hibernate.org/hib_docs/v3/reference/en/html/session-configuration.html#configuration-hibernatejdbc

  3. #3
    Membre averti
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Par défaut
    salut,

    Merci bcp, c'est bien de là que vient le problème.
    Je pense que ja vais utiliser c3p0 puisqu'il est fournit avec Hibernate. Par contre, dans la doc ils donnent un exemple utilisant c3p0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    hibernate.connection.driver_class = org.postgresql.Driver
    hibernate.connection.url = jdbc:postgresql://localhost/mydatabase
    hibernate.connection.username = myuser
    hibernate.connection.password = secret
    hibernate.c3p0.min_size=5
    hibernate.c3p0.max_size=20
    hibernate.c3p0.timeout=1800
    hibernate.c3p0.max_statement=50
    hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect
    ...mais où faut-il que je mette ce code, sachant que j'utilise uniquement le fichier hibernate.cfg.xml pour configurer Hibernate ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    L'exemple est destiné à un fichier hibernate.properties.

    Dans un fichier hibernate.cfg.xml cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <property name="hibernate.c3p0.min_size">5</property>
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.timeout">1800</property>
    <property name="hibernate.c3p0.max_statements">50</property> 
     
    etc...

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Par défaut
    le pb est connu pour mysql
    regarde sur le forum

    je crois qu'il fo rajouter ?setAutoReconnect=true dans l'url

    je n'ai pas ce pb avec mysql 4.x et la datasource définie dans le context.xml de l'appli
    a partir de tomcat 5.5, dbcp est uilisé par défaut, donc c ok!

  6. #6
    Membre averti
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Par défaut
    Pietra tu as effectivement raison
    Je n'avais pas utiliser le bon pool de connexion
    J'ai refais les tests avec C3p0 et ça marche nickel 8)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/04/2007, 00h18
  2. [MySQL] Problème d'exécution de requête
    Par hedgehog dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/02/2007, 15h29
  3. Problème d'exécution de requête
    Par Juanito-Toto dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/10/2006, 10h14
  4. problème d'exécution de requête sous VBA?
    Par jessy212 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/08/2006, 18h48
  5. Réponses: 2
    Dernier message: 02/03/2006, 19h29

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