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

MySQL Discussion :

Augmenter la durée d'inactivité de ma connexion mysql


Sujet :

MySQL

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut Augmenter la durée d'inactivité de ma connexion mysql
    Bonjour

    Je viens d'héberger mon site web J2EE et comme c'est encore en phase test, j'ai pas beaucoup de visites et du coup le site reste inactif une bonne vingtaine de minutes. Suite à ça j'ai le message d'erreur suivant:

    dao.DAOException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    Et lorsque j'actualise tout redevient normal.

    En faisant mes recherches j'ai compris qu'il fallait augmenter la durée d'inactivité de mes connexions à mysql. Je suis aussi tombé sur ça:

    Your mySQL connections are timing out before your connection pool recognizes them. There are multiple ways to fix this:

    1. Increase the timeout value in mysql config file (my.ini)
    2. Reduce the idle time in your connection pool, so that it will discard the connection before mysql will close it
    3. Add a validate connection query in your pool config so that the pool tests each connection before it gives it to you, but this can slow down the system terribly.
    J'aimerais donc savoir quelle solution parmi les 3 vous me conseillez.

    Merci

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Euh...

    Normalement, un serveur web ne délivre des pages web que lorsqu'on les lui demande. Et c'est lors de cette demande de page que, si besoin pour générer la page à envoyer au demandeur, une connexion au SGBD va se faire. Le reste du temps, cette connexion est inutile et il est normal que les connexions soient fermées quand elles ne sont plus utiles.

    Je ne comprends donc pas la nature de votre problème.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    Si vous utilisez bien un pool de connexion, faîtes un mix de 1 et 2 afin d'être dans la configuration suivante :
    idle time connection pool < timeout mysql

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    J'ai contacté le service clientèle de mon hébergeur et voici ce qu'il ma conseillé:

    Dear Customer,

    In the server you located timeout is set to 10 minutes. Please note, that changing the timeout will affect all customers on the server, which may cause various issues.

    As a solution, we would like to suggest you to add in your jdbc connection string following command:
    &autoReconnect=true&failOverReadOnly=false&maxReconnects=10

    In this case, after timeout, you will be reconnected again.
    J'ai donc ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url = jdbc:mysql://localhost:3306/ma_base_de_donnees&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
    Mais quand je lance mon application j'ai l'erreur suivante dans le fichier log:

    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
    INFO [org.netbeans.modules.tomcat5.TomcatManagerImpl]: TomcatManagerImpl connecting to: http://localhost:8084/manager/text/deploy?config=file%3A%2FC%3A%2FUsers%2FMo%2FAppData%2FLocal%2FTemp%2Fcontext138676520858696842.xml&path=/MonSite
    INFO [org.netbeans.modules.j2ee.deployment.impl.TargetServer]: Cannot incrementally deploy to more than one target
    INFO [org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment]
    The module has not been deployed.
    See the server log for details.
    [catch] at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:210)
    	at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:111)
    	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    	at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    	at org.apache.tools.ant.Task.perform(Task.java:348)
    	at org.apache.tools.ant.Target.execute(Target.java:392)
    	at org.apache.tools.ant.Target.performTasks(Target.java:413)
    	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    	at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    	at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    	at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:283)
    	at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:541)
    	at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
    Merci

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    J'ai fait une petite erreur dans l'url, j'ai oublié le "?".

    Donc c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url = jdbc:mysql://localhost:3306/ma_base_de_donnees?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
    Au lieu de:

    url = jdbc:mysql://localhost:3306/ma_base_de_donnees&autoReconnect=true&failOverReadOnly=false&maxReconnects=10

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    Ok je n'ai plus d'erreur lors du lancement de l'application mais j'ai toujours le message d'erreur qui s'affiche après 10 minutes d'inactivité.

    Help please...

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Si vous utilisez bien un pool de connexion, faîtes un mix de 1 et 2 afin d'être dans la configuration suivante :
    idle time connection pool < timeout mysql
    J'ai pas bien saisi ce que tu veux dire par là

Discussions similaires

  1. la durée de vie d'une connexion mysql
    Par leo_OrNg dans le forum Administration
    Réponses: 1
    Dernier message: 31/12/2008, 21h52
  2. durée de vie d'une connexion mysql
    Par van-bom dans le forum MySQL
    Réponses: 1
    Dernier message: 08/11/2008, 18h07
  3. Comment augmenter la durée des sessions?
    Par dolf13 dans le forum Langage
    Réponses: 1
    Dernier message: 16/06/2007, 17h38
  4. Duree d'inactivite d'une base de donnees
    Par dehorter olivier dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/11/2006, 18h08

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