Besoin d'aide

Besoin d'aide - Java - Programmation

Marsh Posté le 03-10-2002 à 17:32:14    

Bonjour;
 
Voila j'ai développé une application web qui upload (ajouter et supprimer) des fichiers d'un client web vers un serveur Unix (Solaris).
J'ai une autre applicationn qui implémente un protocole de communication entre ce serveur et un équipement qui va télécharger des fichiers dont il a besoin pour son traitement.
 
Problème :  si un utilisateur se connecte et supprime un fichier qui est entrain d'être telécharger par un équipement.  
 
Comment je dois gérer ce problème au niveau implémentation ?
 
En vous remerciant;
 
Djamel;

Reply

Marsh Posté le 03-10-2002 à 17:32:14   

Reply

Marsh Posté le 03-10-2002 à 17:40:30    

ben en gérant correctement la synchronisation sur ces fichiers : tu créés un objet qui représente chaque fichier et tu synchronises la méthode permettant de le lire et la méthode permettant de le supprimer.
 
sinon, tu peux aussi gérer ton verrou à la main si tu préfères ...

Reply

Marsh Posté le 03-10-2002 à 18:16:32    

j'ai lu ton message privé. Tu dis que tu as bcp de fichiers => ca doit te géner d'avoir un objet en mémoire pour chaque fichier. tu me demandes d'expliquer la 2e solution.
 
c'est dans la même JVM tes deux applis qui lisent et supprime les fichiers ? sinon, c'est plus complexe.
 
si c'est dans la même, mon idée, c'est de centraliser la gestion de tes fichiers dans une classe. Cette classe devra gérer les opération sur les fichiers. Elle devra allouer un verrou à chaque fichiers sur laquelle elle travaille. Le verrou ca peut être un simple booleen qui dit si le fichier est utilisé ou non.
 

Reply

Marsh Posté le 04-10-2002 à 11:44:47    

Et non hélas ce sont deux applications complétements différentes :
une elle ajoute et supprime des fichiers (application web basée sur le framework struts), la seconde permet à un équipement de transférer ces fichiers vers lui (application implémentée en C++).
 
Il y'a la veille méthode des sémaphores, mais je pensais qu'il existait d'autres solutions bcq plus simple à réaliser.
 
A+;
 
Djamel;
 

Reply

Marsh Posté le 04-10-2002 à 12:01:55    

Bah je pencherais sur une association de setReadOnly() et une capture et gestion d'exception si malgres tout le fichier disparait...
 
Cette methode (setReadOnly()) n'assure en rien que le fichier ne sera pas efface car ceci depend de l'OS, mais de toute facon lorsque tu travailles sur des fichiers tu DOIS de toute facon deja capturer les exceptions potentielles (ou alors tu es suicidaire :lol: ) alors ajouter une gestion pour ton cas de deconnexion ca ne devrait pas te prendre trop de temps.
 
Enfin methode brutale : tu crees une copie local et temporaire de chaque fichier juste au moment de l'envoi.
 
Autre methode plus brutale encore mais plus clean si ton applic est grosse : tu fais communiquer tes deux applications pour qu'elles se mettent d'accord sur les tranches de temps ou l'une peut effacer et l'autre lire. Tu peux faire ca via un bete lock file (si existe alors pas le droit d'effacer et attendre que le lock disparaisse) ou un protocole de communication plus complique...
 
Tout depend de ce que tu veux.
 
Vas voir du cote des systemes distribues et de la synchronisation d'espaces de tuples pour trouver des pistes que tu pourrais adopter.
 
Bye

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed