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 :

[C3P0][MSSQL2008] Probleme de blocage de processus


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 38
    Par défaut [C3P0][MSSQL2008] Probleme de blocage de processus
    Bonjour,
    J'ai un gros problème depuis plusieurs mois, et je ne sais plus quoi faire pour le corriger.
    Mon serveur est sous resin 4, j'utilise spring 3.02 et hibernate 3 et la dernière version officiel de C3P0.
    Il arrive en moyenne 1 fois toute les 2 semaine , que ma base de donnée ce bloque suite a une blocage de processus du à une transaction.
    Mes transactions sont assez grosses, généralement un dizaine de requete select et une dizaine d'update dans la meme transaction.
    Peut être est ce une erreur et qu'il faudrait que je fasse une transaction pour les select et une pour les insert et update mais j'arrive pas à comprendre pourquoi ma base se bloque en créant des blocage en chaine sur des processus différents.

    Voici mon fichier de configuration, si des fois il est la cause de mes problèmes, chose qui m'étonnerais.
    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
     
        <bean id="sessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="configLocation">
                <value>classpath:hibernate.cfg.xml</value>
            </property>
            <property name="hibernateProperties">
                <map>
                    <entry key="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver"/>
                    <entry key="hibernate.connection.url" value="jdbc:jtds:sqlserver://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
                    <entry key="hibernate.connection.username" value="xxxxxxxx"/>
                    <entry key="hibernate.connection.password" value="xxxxxxxx"/>
                    <!-- Query properties -->
                    <entry key="hibernate.show_sql" value="false"/>
                    <entry key="hibernate.format_sql" value="false"/> 
                    <entry key="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/> 
                    <entry key="hibernate.use_outer_join" value="true"/>               
                    <entry key="hibernate.connection.release_mode" value="auto"/> 
                    <!-- C3P0 - Connection Pool Provider -->   
                    <entry key="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider"/>
                    <entry key="hibernate.c3p0.min_size" value="3"/>
                    <entry key="hibernate.c3p0.max_size" value="20"/>
                    <entry key="hibernate.c3p0.acquire_increment" value="1"/>
                    <entry key="hibernate.c3p0.timeout" value="200"/>
                    <entry key="hibernate.c3p0.idle_test_period" value="200"/> 
                    <entry key="hibernate.c3p0.num_helper_threads" value="3"/>
                    <entry key="hibernate.c3p0.max_statements" value="0"/> 
                    <entry key="hibernate.c3p0.preferredTestQuery" value="SET LOCK_TIMEOUT 15000;Select @@LOCK_TIMEOUT;"/>                
                </map>
            </property>
        </bean>
    J'ai réussis a voir la transactions qui pouvait causer problème et elle contient un envoie de mail en fin de méthode, cette envoie de mail est censé être asynchrone. Donc j'avoue que je comprend pas pourquoi , il pourrait être la cause de ce problème de blocage.

    Merci d'avance si une âme charitable arrive a me donner des indications pour solutionner mon problème.

    Car la j'en suis au point de me dire que la combo hibernate/C3p0 est complétement inutil.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Allensan Voir le message
    Il arrive en moyenne 1 fois toute les 2 semaine , que ma base de donnée ce bloque suite a une blocage de processus du à une transaction.
    Il faudrait voir quelles opérations concrètement bloquent (un kill -3 sur le process jaav te donnera la stack de tous les thread et donc aussi du thread bloqué. A partir de là, tu pourra déterminer si tu est bloqué dans une accès concurrent au cache (bug de C3P0?) ou si tu est (plus probable) bloqué dans une transaction SQL à cause d'un deadlock. Dans le dernier cas, il faudra envisager de révisr tes requêtes et surtout leur concurrence pour résoudre ton problème d'interblocage. On ne peux pas faire n'importe quoi avec les transaction.

    Et séparer select / update dans des transactions séparée, c'est faire pire que mieux, tu va perdre toute l'atomicité et la cohérence de ton travail, ce qui, suivant le contexte, peux être très dangereuxe pour l'intégrité de ta base.

Discussions similaires

  1. Problème dans execution de processus
    Par Edta dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 11/11/2006, 21h44
  2. Problème ou blocage du montage (mount)
    Par SkyDev dans le forum Administration système
    Réponses: 3
    Dernier message: 06/11/2006, 13h35
  3. probleme de blocage d'impression :(
    Par softstar dans le forum Delphi
    Réponses: 5
    Dernier message: 16/09/2006, 11h25
  4. problème de blocage lors de démarrage
    Par leo13 dans le forum Ordinateurs
    Réponses: 16
    Dernier message: 05/05/2006, 19h07
  5. probleme de duplication de processus
    Par chachil dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/11/2005, 14h12

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