Plantage aléatoire lors d'un accès à un fichier partagé

fyhaar Messages postés 5 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 20 avril 2010 - 20 avril 2010 à 14:38
fyhaar Messages postés 5 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 20 avril 2010 - 20 avril 2010 à 15:56
Bonjour,

J'ai un problème très énervant à résoudre :

J'ai réalisé un programme de gestion de réservation de salle de travail qui devrait pouvoir être utilisé en réseau sur deux postes.
Le programme lit régulièrement (par un streamreader) des fichiers texte placés dans un dossier partagé de l'un des deux postes, sans restriction d'accès.
Le problème est que régulièrement, mais pas à chaque fois, le prog plante à la lecture d'un des fichiers texte en prétextant que le fichier n'existe pas... alors qu'il existe (ben oui hein, sinon ça ne serait pas drôle).
Après vérification, il n'y a aucune raison que ça vienne du prog (après évidemment je peux me gourrer, mais il fonctionne parfaitement en accès direct depuis le poste sur lequel se trouve le partage), mais j'ai quand même essayé de détourner le problème en le forçant à chercher le fichier jusqu'à ce qu'il le trouve. Malheureusement ça plante quand même dans certains cas.

Est-ce un problème classique du partage, et si oui, y'a-t-il une solution ? Ou est-ce que je peux m'asseoir sur la partie réseau de mon programme ?

Merci d'avance pour vos réponse.

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 avril 2010 à 15:06
Bonjour,

Tu peux gérer l'erreur en utilisant le bloc Try ... Catch ... End Try, cela te permettre d'éviter que l'utilisateur voit l'erreur.

Dans ton cas, tu peux peut être passer par une connexion TCP (comme ça chaque programme a son fichier en gestion et l'autre programme n'y accède pas).
Tu résolveras plusieurs problème :
- Accès au fichier
- Risque d'accès concurrent
- Cohérence du fichier

Mon site
0
fyhaar Messages postés 5 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 20 avril 2010
20 avril 2010 à 15:26
Merci mais malheureusement je ne peux pas systématiquement éluder le problème avec un try... car il DOIT lire les fichiers avant de continuer, et en puis dans certains cas, le fichier n'existe pas réellement sur l'instant (ça dépend : certains fichiers précis sont toujours existants alors que d'autres sont créés par les réservation).

De plus, les deux postes doivent obligatoirement utiliser les mêmes fichiers pour éviter les erreurs de réservation (ex: réserver une plage horaire déjà réservée par l'autre poste). J'avais prévu de faire des fichiers de lock pour éviter les accès concurrents, et des tests pour vérifier la cohérence du fichier.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 avril 2010 à 15:41
Bonjour,

Avec le try/catch, tu gère l'erreur, tu fais une petite pause et tu réessayes, je ne vois pas en quoi le Try/Catch ne te conviendrais pas.

Mon site
0
fyhaar Messages postés 5 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 20 avril 2010
20 avril 2010 à 15:56
Ben j'avais essayé avec un "on error ..." mais même avec ça il lui arrive de planter en s'en fichant royalement (ce qui m'agace car ce n'est pas systématique), alors je me suis dis que le try catch ne changerait probablement pas grand chose par rapport à ça.
Enfin effectivement ça ne coûte rien d'essayer.
0
Rejoignez-nous