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

VB 6 et antérieur Discussion :

[VB6] verrouillages "intempestifs" dans une base A


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Points : 11
    Points
    11
    Par défaut [VB6] verrouillages "intempestifs" dans une base A
    Bonjour
    Chez un de mes clients, les exceptions de type "impossible de mettre à jour, actuellement verrouillé par..." se multiplient (erreurs DAO 3046, 3260).

    Environnement :
    • *Base Access 95 (sur un serveur Windows 2000)
      *Clients VB6 +DAO 3.51 (postes Windows XP ou Windows 2000)
      *entre 2 et 8 utilisateurs

    L'application tourne et évolue depuis 1997. Apparition des erreurs depuis 3 mois, ce qui correspond en gros au renouvellement du réseau et du serveur, et à un accroissement du nombre d'utilisateurs.

    Ce qui me turlupine,
    • *c'est qu'en général les postes concurents ne travaillent pas sur les mêmes données.
      *De plus il arrive que les concurents se bloquent mutuellement (ordinateur A : "verrouillé par ordinateur B" et sur ordinateur B : "verrouillé par ordinateur A")
      *ou pire, que l'un des ordinateurs est éteint au moment de l'incident !

    Pouvez-vous éclairer ma lanterne sur les causes possibles de ces interruptions, car depuis des jours je parcours les faqs, forums et autres knowledge base... je vérifie également systématiquement mon code (pas d'Edit sans update, jamais d'usage exclusif des données...)

    Merci de votre attention.

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Access verrouille par page, dès lors des enregistrements qui ne sont pas concernés sont verrouillés aussi. Plus tu as d'utilisateurs qui posent des verrous, plus le phénomène va apparaitre.

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Voilà bien là l'énorme différence entre des systèmes d'exploitation comme Windows et d'autres, comme GCOS !

    Imaginons ce que cela donnerait, au niveau d'une banque...

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    quel est le rapport avec windows

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Il est bien là. Certaines choses ne peuvent être évitées avec Windows

  6. #6
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    c'est stupide comme remarque. Il existe des SGBD qui ne verrouillent pas par page et qui tourne sur Windows.

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Avec ces SGBD, donc, deux utilisateurs distincts seraient suceptibles de transformer simultanément, chacun de son côté et l'autre voyant immédiatement la transformation en cours, le même article ?
    Une telle SGBD m'intéresse au plus haut point. Quel est donc son nom ?

  8. #8
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Citation Envoyé par jmfmarques
    Avec ces SGBD, donc, deux utilisateurs distincts seraient suceptibles de transformer simultanément, chacun de son côté et l'autre voyant immédiatement la transformation en cours, le même article ?
    Une telle SGBD m'intéresse au plus haut point. Quel est donc son nom ?

    Tu m'a l'air d'avoir une curieuse conception du fonctionnement des SGBD.

    Le même article, ce n'est plus une question de verrou de page mais de verrou d'enregistrement. Et celui-là il vaut mieux qu'il fonctionne sinon tu peux dire adieu à l'intégrité de ta base assez rapidement

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon! je ne vais pas m'étendre. Il y a aussi les secteurs, les séparateurs, les groupes, les BOF et les EOF..
    Mais n'en parlons plus.

  10. #10
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut

  11. #11
    Débutant Avatar de amazircool
    Inscrit en
    Décembre 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 497
    Points : 152
    Points
    152
    Par défaut phénomène
    Bidan dit:
    "plus le phénomène va apparaitre."
    qulle phénomène vous parler SVP les verrou mortel?????

  12. #12
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Aussi mais pas seulement. Les verrous mortels sont une conséquence de l'appel multi table de certaines opérations. On peut généralement les trouver au prix d'une étude un peu poussée des requêtes appelées. Dans le cas d'access lorsqu'il verrouille par page, il n'est pas possible quels enregistrements seront de fait verrouillés lorsqu'un enregistrement spécifique l'est. Le verrou ne sera pas forcément mortel mais empêchera un bon fonctionnement du programme puisque certains enristrements seront verrouillés alors qu'ils ne devraient pas l'être.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Points : 11
    Points
    11
    Par défaut [VB6 Access] verrouillage
    Bonjour
    quelle débat ! Je pense que Bidou est dans le vrai, et que jmfmarques ouvre peut être une question interressante, mais qui me semble un peu hors-sujet...
    Revenons à nos moutons : Je suis tout à fait conscient que le verrouillage par page amplifie le phénomène, mais ce que je ne comprend pas, c'est :
    - pourquoi dans certains cas deux ordinateurs se bloquent mutuellement
    - pourquoi le verrouillage peut provenir d'un ordinateur eteind (l'ordinateur en question a travaillé sur la base un certain temps, puis l'utilisateur l'a éteind)
    y a t il une persistance du verrouilage de page pendant un certain temps ?

  14. #14
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut Re: [VB6 Access] verrouillage
    Citation Envoyé par hucliez
    - pourquoi dans certains cas deux ordinateurs se bloquent mutuellement?
    Cela peut arriver dans un mode transactionnelles si tes requêtes concernent au moins deux tables. Une requête peut poser un verrou sur une première table puis sur une seconde, alors qu'une autre requête le fait en sens inverse. Cela peut aussi être le cas si par effet de pages certains groupes d'enregistrements se retrouvent verrouiller alors qu'il ne devraient pas l'être.

    Citation Envoyé par hucliez
    - pourquoi le verrouillage peut provenir d'un ordinateur eteind (l'ordinateur en question a travaillé sur la base un certain temps, puis l'utilisateur l'a éteind)
    y a t il une persistance du verrouilage de page pendant un certain temps ?
    Il faut vérifier que le fichier ldb est bien supprimé lorsque toute les sessions sont éteintes

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci Bidou
    en fait, je n'apprend rien de vraiment nouveau, mais je me demandais si ...
    de fait les recordsets comprennent de multibles jointures, alors si le verrouillage implique chaque table incluse, ça fait du monde.

    Je vais donc marquer le sujet comme "résolu" d'ici peu.

    Cependant, le dernier point que tu évoques (suppression du fichier ldb) ne peut se produire puisqu' il y a toujours un utilisateur actif au moment de l'incident (l'utilisateur bloqué par l'ordinateur éteint), d'où ma question sur la persistance du verrouillage...
    Y a-t-il quelque chose à faire du coté de Jet? je tente des trucs du genre DBEngine.Idle dbFreeLocks, mais ça ne semble pas très efficace...

  16. #16
    Débutant Avatar de amazircool
    Inscrit en
    Décembre 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 497
    Points : 152
    Points
    152
    Par défaut IX OU X
    JE suis pas sure mais peu etre la table veroullez en mode X (eXclusive) ce que empecher l acces de 2 éme transaction.( ou 2 eme ordinateur si tu veu.
    en se cas la il fait veroullez la table en mode IX (Intention exclusive).

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

Discussions similaires

  1. Exécution d'une macro dans une base Access en VB6
    Par Safaritn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/05/2007, 18h00
  2. [vbnet 1.1]Inserer deux simple quote sans texte dans une db
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/03/2007, 09h51
  3. [VB6]problème d'insertion des donneés dans une base d'Access2003
    Par lanbok dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2006, 13h17

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