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

Administration MySQL Discussion :

effet de bord connexion multiples


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 374
    Par défaut effet de bord connexion multiples
    * Bonjour, *

    j'ai plusieurs threads dans un programme C++ qui accèdent simultanément à la même base de données via l'appel à des connexions séparées.

    le petit effet de bord qui survient quelque fois, c'est que si un thread mets à jour une donnée ou crée un nouvel enregistrement,
    un autre thread n'a pas forcement accès à la donnée actualisée ou insérée.

    j'ai l'impression qu'il faut remettre à jour la connexion.
    pour un problème de temps de connexion en requêtes multiples, les connexions restent établies dans le temps.

    est-ce qu'un flush ou autre pourrait forcer la connexion à prendre en compte les changements intervenus , est-ce que ça peut être un problème de cache de la base de données ou quelque chose d'approchant.?

    une solution pour résoudre ça sans avoir à réinitialiser la connexion à la base de données.?

    * Merci *

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Par défaut
    bonjour.

    Les tables ne serait elle pas en innodb par hasard?

  3. #3
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    Salut oui ça doit certainement venir de ça à priori...

    En myisam, tes transactions sont en auto commit forcé vu qu'il n'y a pas de gestion du mode transactionnel donc le moindre changement est directement visible.

    En innodb, il y a gestion transactionnelle donc il faut faire un commit pour que les changements soient pris en compte... En gros, quand tu fais des insert, delete, update ils sont annulable jusqu'au commit et donc stockés en attente de validation définitive (commit). Par contre, dans ta session les changements sont visibles et il me semble qu'il y a un auto commit lors de la déconnexion de la session, ce qui explique que ça mets à jour les autres sessions...

    une solution est de configurer ton serveur ou les sessions en auto commit ou de penser à faire un commit à chaque fin de série de mises à jour que tu fais


  4. #4
    Membre très actif
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 374
    Par défaut autocommit
    je l'avais pas précisé mais en effet, c'est de l'innodb. bien deviné!
    le plus bizarre c'est que justement, tous mes appels de fonctions sont par defaut en autocommit, à moins que la fonction le precise pour la gestion de transactions par exemple, ce qui n'est pas le cas ici.
    ou alors il faut un délai pour la propagation de l'info entre les connexions?

  5. #5
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    non la propagation est relativement immédiate normalement teste en faisant des commit carrément pour voir si ça corrige

Discussions similaires

  1. [VB.NET]Connexions multiples pour un même processus.
    Par leSeb dans le forum Windows Forms
    Réponses: 16
    Dernier message: 14/03/2006, 09h53
  2. Effet de bord...
    Par pierre50 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 12/10/2005, 18h11
  3. Effet de bord
    Par Clad3 dans le forum OpenGL
    Réponses: 11
    Dernier message: 04/10/2005, 14h38

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