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

C# Discussion :

File Lock et DFS


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut File Lock et DFS
    Salut Mesdames, Mesdemoiselles et Messieurs,

    on me demande dans le cadre de l'entreprise de gérer un cas que Windows Server 2008 R2 ne peut résoudre de lui-même question DFS.

    Nous avons deux serveurs de fichiers DFS sur deux sites différents (domaine commun) avec des réplicats entre les deux sites. Or, si les fichiers sont bien répliqués, le Lock sur ces mêmes fichiers ne l'est pas; donc :

    lorsque deux personnes modifient un même fichier sur ce DFS, celui qui a ouvert le fichier en deuxième ne l'ouvrira pas en lecture seule et croira sauvegarder son fichier; mais en pratique SA version de fichier disparaitra de la circulation au moment où le premier utilisateur (à avoir ouvert ce même fichier) sauvegardera le sien.

    On m'a donc demandé de trouver un moyen de répliquer ces Locks entre les deux serveurs.

    Il existe un logiciel (PeerLock) qui fait ça, mais la direction à estimé que le prix était excessif...
    Ce qui m'étonne aussi, c'est que c'est le seul logiciel que j'ai pu trouver de ce genre... (du coup en tant que petit développeur sans prétention j'ai un doute sur la faisabilité)

    Perso, le DFS n'est pas un truc que je maitrise connais et malgré mes recherches je n'ai pas pu trouver grand chose...

    Alors toute aide sera la bienvenue

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Salut

    Je ne sais pas "nativement" résoudre ton problème.

    Mais si on me demandait de faire un développement pour essayer de résoudre un tel problème, je crois que je me tournerais du coté du FilesystemWatcher qui te permet d'espionner un fichier...

    donc, ce que je ferais, c'est une appli qui surveille le(s) fichier(s) et dès qu'un lock est crée, je ferais "bêtement" une copie du fichier de lock sur l'autre serveur. Je ne sais pas si cela marcherait mais bon, c'est la première approche que je tenterais...

    Après, suivant le prix de l'outil.. je réfléchirais aussi...

    Entre un dev de 1 à 2 jours avec "pas mal" de validation et un logiciel à 500€, je prendrais la solution commercial... après, suivant le cout (> 1000€), je me poserais la question du "petit" dev entre amis

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    mouaip, en l’occurrence ce serait 3000€ (ouai ya '3' + 3 zéros)

    le problème c'est que je n'ai pas vu de "fichier de lock" de créé...

    je sais que les fichiers "perdus" sont placés dans un sous-répertoire de "c:\\System Volume Information" avec des noms à la MortMoiLaNode...

    on m'a parlé de clefs de registre mais après recherche je n'en ai pas trouvé de correspondantes

    je cherche...

    ce qui m'étonne (et je crois que je me répète) c'est que le prix est spécialement élevé et qu'ils sont les seuls à avoir mis au point une solution à ce problème qui, je pense, doit être assez répandu. Pour moi, si c'était faisable (j’entends par là sans connaissances ultimes du système...) il y aurait déjà une flopée de freewares disponibles...

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    bonjour

    Il ne peut y avoir de fichier de lock que si l'application servant à ouvrir le fichier en crée une.

    Ce n'est peut-etre pas ton cas.

    Après, je ne sais pas si on peut savoir avec le FileSystemWatcher si un fichier est ouvert. Je pense que non...

    Souvent, la solution pour savoir si un fichier est déja ouvert est d'essayer de l'ouvrir en écriture et regarder le code d'erreur (éventuel) retourner par le test. Suivant le résultat, on peut savoir si le fichier est ouvert ou pas.

    Une solution pourrait être la suivante:

    Quand une demande d'ouverture a lieu, tester cela.

    Le principal problème reste maintenant d'être averti quand une demande d'ouverture a lieu. Il me semble que pour être averti de cette information, il faut que le fichier soit modifié... Si ton fichier est ouvert avec word, word créant un fichier de lock, tu vas pouvoir gérer cela... mais avec une autre application, ca ne sera pas le cas...

    Je crois que dans ce cas là, il faut "bidouiller" avec du hook system pour connaitre l'activité au niveau FileSystem...

    C'est peut-etre pour cette raison que peu d'applications sont dispo sur le net pour faire cela...

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Je confirme

    Il faut faire du Hook et donc, le principe est d'injecter dans une DLL system le hook d'une fonction type "OpenFile"... et ensuite, que ta fonction de hook se gère le truc...

    Je pense que c la raison du prix...

    Si tu vas ici, tu devrais trouver je pense ton bonheur

    Easy Hook - Codeplex

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    Arf, merci pour tes conseils mais malheureusement tu as tapé à coté :p

    un même fichier existe physiquement sur 2 disques sur deux sites différents.
    ce fichier est répliqué sur le site B après modification sur le site A et inversement.

    mais quand un utilisateur modifie le fichier sur le site A, on doit pouvoir spécifier au site B que le fichier ne doit pas être modifiable (vu que la version A sera répliquée après sauvegarde et écrasera la version B).
    il faut donc gérer un lock sur un fichier dont la COPIE est ouverte.

    pour cela le système DFS utilise soit la base de registre soit un répertoire, soit un fichier, soit une BDD soit WMI ....

    en gros je cherche où sont stockées ces informations (sur le site A par exemple, pour les répliquer moi-même sur le site B.

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Themacleod1980 Voir le message
    mouaip, en l’occurrence ce serait 3000€ (ouai ya '3' + 3 zéros)
    Bon, ok , 3000 brouzouf. Mais bon, si tu dois y passer 7 ou 8 jours en comptant les phases de test, de recette, déploiement, etc .... et pour peu qu'il y ait quelques itérations et mises en indisponibilité du serveur (impactant éventuellement le travail d'autres personnes), je ne suis pas sur que tu (enfin, ta boite) vas économiser quoi que ce soit.

Discussions similaires

  1. [AC-2010] Fermer access sans lock file
    Par Crusnok dans le forum VBA Access
    Réponses: 12
    Dernier message: 13/07/2012, 10h14
  2. Réponses: 4
    Dernier message: 02/06/2010, 15h39
  3. [H2] Lock file modification time is in the future
    Par Sebastien.B dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 19/08/2009, 16h18
  4. Locking File
    Par swirtel dans le forum C++Builder
    Réponses: 1
    Dernier message: 08/12/2004, 16h55
  5. [CVS] Problème de commit (Could not open lock file)
    Par 1tox dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 19/10/2004, 11h22

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