-
Gestion de concurrence.
Bonjour.
Quelle est la meilleure façon de gérer l’accès a un fichier sur un serveur.
Pour moi, j'ai déjà essayé avec la base de donnée, mais les doublons existent toujours,
j'ai aussi essayé avec les fichiers XML, mais je crains aussi qu'il y aurait des doublons.
Merci
-
Personnellement je comprend pas ce que tu veux faire ...
Tu veux avoir un seul point d'accès à un fichier (spécifique), tu veux stocker dans un fichier, base de données, fichier xml ....
Pourrais tu être plus précis dans ta demande
-
Oui c'est un peu flou. Mes excuses ;)
En fait je deploie une application sur plusieurs postes. Les application deployés seront donc utilisées en meme temps pour acceder à des fichiers sur le serveur.
Le probleme est que si un fichier est deja ouvert par un utilisateur, il ne doit plus etre utilisé par un autre utilisateur en paralelle.
C'est la gestion de cette acces concurente qui me pose probleme, quelle est la meilleure facon. :(
-
Alors tu as différente solution, une simple et qui permet de savoir qui fait quoi, c'est de créer un autre fichier dans lequel tu vas enregistrer qui fait quoi sur le fichier. Ce qui te permet d'informer l'utilisateur qui travaille sur le fichier, donc si il veut aller voir la personne pour libérer le fichier.
Après tu n'as pas forcément envie que les gens qui fait quoi ... Alors je sais pas si ça marche, mais quand tu ouvres un fichier en FileStream tu peux donner des droits de partage (Lien msdn), le FileShare permet de déterminer les partages interprocessus ... mais comme tu es en réseaux je pense pas que ça marche.
La dernière solution, serait de faire un Server de fichier sur le Server, qui permet de donne les accès aux fichiers, c'est à dire que tes soft client ne vont pas chercher directement le fichier, mais il passe par une communication avec un Service sur le server qui donne les accès ou non.
Personnellement je préfère la solution numéro 3 car elle permet de faire plein de chose, et surtout de répartir les fichiers sur d'autres server que le server qui distribue les accès. Si jamais tu travailles à l’international, et que tu as des problèmes de réseaux, peut être qu'il sera plus simple d'avoir des fichiers sur des server locaux aux pays mais un service d'accès commun au monde entier. C'est un exemple d'avantage, même pour un service sur un même site ça apporte beaucoup d'avantage.
Après si tu ne peux pas faire beaucoup de Développement pour diverse raison et surtout que tu ne peux pas faire un Service sur le serveur et bien je préfère la numéro 1, au moins tu es sur que ça fonctionne tout le temps.
-
Merci de votre reponse. Je pense que ca va beaucoup aider