Plantage aléatoire lors d'un accès à un fichier partagé
fyhaar
Messages postés5Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention20 avril 2010
-
20 avril 2010 à 14:38
fyhaar
Messages postés5Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention20 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.
A voir également:
Plantage aléatoire lors d'un accès à un fichier partagé
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 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
fyhaar
Messages postés5Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention20 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.
fyhaar
Messages postés5Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention20 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.