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

PHP & Base de données Discussion :

[SQL] Bug de fichier aléatoire


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut [SQL] Bug de fichier aléatoire
    Salut,

    Comme certains ont pu le lire sur un autre topic, je suis en train de développer un système de forums.

    Je n'utilise aucun FrameWork et j'essaye de tout développer.

    J'ai créé un système de cache pour stocker le résultat des requêtes SQL couramment lancées.

    C'est à ce niveau que ca posait problème.

    Il arrivait quelques fois que le forum écrive n'importe quoi dans le fichier cache, ca arrivait souvent aux heures de pointe là où le cache est très souvent réécrit.

    J'ai revu plusieurs fois le code je ne trouvais pas la cause de ce bug.

    J'ai découvert l'existance de la fonction : flock();

    Apparemment depuis que je l'utilise ca n'a pas rebuggé (je n'ai pas encore assez de recul pour être sur que le bug a été corrigé).

    J'en déduis que PHP essayait d'écrire dans le fichier avant qu'il ne l'ait fermé.

    Pensez vous que le problème venait de là?

    Merci d'avance pour vos réponses.

    A+

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    C'est fort probable ouè.
    Lorsque tu as beaucoup de programmes qui veulent accéder à une ressource, il faut utiliser ce genre de fonction qui simule un sémaphore en fait.
    C'est de l'exclusion mutuelle : il y a un seul jeton, j'ai le jeton donc je peux écrire dans le fichier, lorsque j'ai fini mon écriture, je passe le jeton au suivant donc il pourra à son tour écrire, etc.
    Ceci empêche que plusieurs programme écrivent le même fichier et que ça retourne n'importe quoi du coup.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut
    Merci pour ta réponse

    C'est donc ce qu'il me semblait.

    Mais comment ca se passe si il y 2 (voire plus) le premier écrit, celui qui arrive en même temps est placé en file d'attente comme tu dis ou le verrou l'empêche totalement d'écrire?

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    ça dépends de l'implémentation de la fonction flock.
    Si c'est juste un système de verrou alors il ne devrait pas y avoir de file d'attente donc le 2° qui arrive prendra un rebond et devra revenir pour pouvoir accéder à la ressource mais normalement dans ce genre de système il y a une file d'attente (c'est quand même plus simple et plus logique)

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

Discussions similaires

  1. [SQL] temps d'execution aléatoirement long...
    Par borisa dans le forum Access
    Réponses: 6
    Dernier message: 10/04/2006, 16h17
  2. [PL/SQL]Génération de fichier plat en PL SQL
    Par Fiora dans le forum Oracle
    Réponses: 2
    Dernier message: 31/03/2006, 14h23
  3. [VBA] Requête SQL sur un fichier excel ?
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2006, 23h06
  4. sql loader et fichier paramètre dynamique
    Par ade05fr dans le forum SQL*Loader
    Réponses: 3
    Dernier message: 13/01/2006, 14h54
  5. Transposer des données sql dans un fichier texte
    Par Anakior dans le forum Outils
    Réponses: 3
    Dernier message: 11/12/2005, 10h01

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