1. #1
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    mai 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : mai 2004
    Messages : 404
    Points : 553
    Points
    553

    Par défaut NumeroAuto généré en local ou sur le serveur ?

    Bonjour

    J'ai un bug assez bizarre sur une appli.
    De manière tout à fait classique, j'ai une table dans une base "data" sur un serveur, partagée (liée) par plusieurs utilisateurq.
    Lors d'ajout plus ou moins simultanés dans cette table l'appli plante aléatoirement avec un message "format de base de données non reconnu" ou "Access a détecté que cette base de données est incohérente et va essayer de la récupérer". Lorsqu'on essaie de rouvrir la base, on se retrouve avec un msg similaire, problème qui se résout neuf fois sur dix grâce à un simple compactage/réparation de la base data (et dans le dixième cas, par une restauration du backup de la nuit, avec les pertes de données que cela entraîne).

    Les enregs dans cette table ne sont pas créés un par un par l'utilisateur, mais par un script qui insère plusieurs enregs à la suite.

    Après avoir éliminé plusieurs possibilités, une solution envisagée serait que la clé primaire, un classique NumeroAuto incrémenté, soit dans les choux.

    D'où ma question : le NuméroAuto est-il généré par le client (ce qui pourrait expliquer un conflit, le serveur n'étant ni proche ni rapide) ou directement par le .accdb partagé ?

    Merci par avance,

    Yvan
    Une solution n'est valable que dans un contexte donné

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Bonjour.

    Access n'est pas client/serveur, tout le travaille se fait sur le poste qui exécute l'application.
    La base sur le serveur est un simple fichier partagé.

    Je soupçonne un problème de réseau, genre micro coupure.

    Aussi j'ai eu des problèmes avec une version 64 bits de Access qui "bousillait" ma BD en réseau. Une fois la BD copiée en locale les problèmes ont disparu.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    mai 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : mai 2004
    Messages : 404
    Points : 553
    Points
    553

    Par défaut

    Effectivement, Access est un serveur de fichier notamment pour les requêtes (qui sont toutes traitées en local), mais je me posais la question pour les NumeroAuto (qui est intégré à la table).

    Le problème me semble trop fréquent pour une micro-coupure. De plus, le message s'affiche sur un poste (pas toujours le même), alors que l'autre ou les autres continuent de tourner. Ceci dit, une fois la corruption détectée, il faut tout déconnecter, compacter/réparer (ou récupérer le backup) et tout redémarrer.

    Quand tu dis "bdd copiée en local", cela signifie que la bdd n'est plus partagée ?
    A titre indicatif, j'ai mis en local tout ce qui pouvait l'être, seules les tables vivantes sont partagées.

    Yvan
    Une solution n'est valable que dans un contexte donné

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Le calcul se fait sur le poste client qui demande le nouvel enregistrement.

    En gros c'est :

    1. Hé tout le monde j'ai besoin d'un nouveau numéro, ne toucher à rien.
    2. Bon là je calcule mon numéro dans mon coin.
    3. J'enregistre mon numéro dans la table.
    4. Hé, tous ! C'est fait. La table est dispo.


    Ma solution ne nécessitait pas de partage donc la copie en locale était la solution la plus simple.
    Il semblait qu'il y avait une incompatibilité avec l'OS du serveur et Access 64 bits.
    Et la solution de M$ était : Utiliser la version 32 bits.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    mai 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : mai 2004
    Messages : 404
    Points : 553
    Points
    553

    Par défaut

    Donc en gros, ce serait la gestion des verrous qui serait foireuse, et qui provoquerai cette corruption d'index (et donc de fichier du coup).

    Le poste client est en 32 bits, je vais vérifier si le serveur est en 32 ou 64.
    Le cas échéant, je ferai un test en générant moi-même la clé primaire.

    Merci pour la confirmation : le numéro auto est bien généré sur le client.

    Yvan
    Une solution n'est valable que dans un contexte donné

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Le problème que j'ai rencontré n'était que avec Office 64 bit.
    Si tu as une version 32 bits, tu ne devrais pas être concerné.
    Est-ce que tu as beaucoup d'utilisateurs ?

    Et c'est peut-être du a un effet de cache, quoi que je n'ai jamais expérimenté un tel problème.
    Il est possible que le calcul soit fait en "local" et envoyé au serveur avec un délais.
    Si cela se produit sur 2 machines en même temps cela pourrait corrompre ton fichier.
    Je n'au aucune idée de comment valider mon hypothèse, désolé :-(.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Aussi vérifie que les verrouillages sont bien à "L'enregistrement en cours".
    À priori cela ne devrait pas avoir d'influence, au pire tu perdrais des données mais ta BD resterai fonctionnelle.

    Bonne chasse au bug.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. authentification compte local client sur windows serveur 2012
    Par p7500 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 10/06/2014, 12h24
  2. [Flex4] Appli flex ok en local / erreur sur le serveur
    Par nma dans le forum Flex
    Réponses: 3
    Dernier message: 06/06/2011, 14h57
  3. PHP_SELF en local et sur le serveur
    Par midnnight dans le forum Débuter
    Réponses: 5
    Dernier message: 05/03/2010, 15h16
  4. Insertion d'image stockée en local ou sur un serveur
    Par SlySylvain dans le forum Word
    Réponses: 0
    Dernier message: 02/10/2009, 08h22
  5. Réponses: 3
    Dernier message: 04/04/2008, 09h18

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