Annonce

Inscriptions terminées.

#1 21-01-2005 14:11:54

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

j'ai besoin de votre avis d'experts!

je suis en train de créer une appli qui utilise un fichier de données XML.
Lors d'un action particulière de l'utilisateur, le fichier est mis à jour.

Le problème arrive lorsque plusieurs utilisateurs ouvre l'appli en même temps car il n'y a qu'un seul fichier de données (commun à tous).
Si par exemple l'utilisateur A ouvre l'appli, l'utilisateur B aussi, et qu'ils mettent à jour le fichier commun à quelques seconde d'intervalle, le second ecrasera la modification éventuelle du premier.

(le problème ne se pose que lorsque plusieurs utilisateurs ont démmarré l'appli au même moment, car si B ouvre l'appli après la mise à jour, elle tient compte des données mises à jour).

Comment faire pour ne pas écraser les données du premier ?
(je peux ajouter des infos dans le fichier pour m'aider si je le souhaite comme l'heure de dernière modif ou autre...)

remarquez, j'y pense à l'instant, il me suffirait de relire le fichier juste avant de mettre à jour, mais ça risque d'êrte un peu long...


Régis.


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#2 21-01-2005 14:36:02

tangui
Super chef du forum
Lieu: Bourg-lès-Valence -- Lyon
Date d'inscription: 22-10-2004
Messages: 442
Site web

Re: j'ai besoin de votre avis d'experts!

Est ce que tu peux modifier le type d'état du fichier? (archive, lecture seule., ou chmod).
Si oui, c'est simple, lorsqu'un utilisateur arrive, tu changes l'état du fichier...L'utilisateur B arrive, regarde l'état du fichier, si pas le bon état il attend...
Ou alors, tu utilises les sémaphores big_smile


T@nguil y a de la vie...

Hors ligne

 

#3 21-01-2005 15:00:53

yoda
Mega Power Member
Date d'inscription: 10-11-2004
Messages: 127

Re: j'ai besoin de votre avis d'experts!

séémaphores ou verrous t'as le choix.

Hors ligne

 

#4 21-01-2005 15:57:43

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

heu...sémaphore ?
Connais pas.

Verrous : cela pose un problème, je ne veux pas qules utilisateurs "attendent leur tour" pour acceder aux données.

Sinon pourquoi ne pas ajouter l'heure de dernière modif dans mon fichier, et mon appli compare l'heure de dernière modif avec l'heure à laquelle il a mit en mémoire le fichier à l'ouverture.

exemple:

Code:

A ouvre l'appli et lis les données à 14h00
B ouvre l'appli et lis les données à 14h01
A modifie les données à 14H02
B veut modifier les données à 14h03==> le systeme détecte une modif faite à 14h02 alor squ'il avait "14h00" en mémoire.
==>Le système relis l'ensemble des données et modifie ensuite.

Dernière modification par papy (21-01-2005 16:01:16)


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#5 21-01-2005 15:58:44

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

Dans mon exemple j'utilise les minutes, mais on peut le faire avec les secondes

What do you think about it ?

Dernière modification par papy (21-01-2005 16:01:52)


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#6 21-01-2005 17:02:25

tangui
Super chef du forum
Lieu: Bourg-lès-Valence -- Lyon
Date d'inscription: 22-10-2004
Messages: 442
Site web

Re: j'ai besoin de votre avis d'experts!

Qd klk1 ouvre le fichier, tu ajoutes une * en haut du fichier
un utilisateur B arrive, voit *, et donc ne peut la modifier
Qd l'utilisateur A a fini, il enlève l'*...
voit pas plus simple...


T@nguil y a de la vie...

Hors ligne

 

#7 24-01-2005 10:20:32

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

Le problème c'ets que je ne veux pas que l'utilisateur ne puisse pas modifier.
Je souhaite que tous les utilisateurs puissent le modifier à tous moment, mais qu'en cas de modif faite juste avant, le système n'écrase pas la modif précédente.


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#8 24-01-2005 12:34:30

tangui
Super chef du forum
Lieu: Bourg-lès-Valence -- Lyon
Date d'inscription: 22-10-2004
Messages: 442
Site web

Re: j'ai besoin de votre avis d'experts!

ce n'est pas possible, tu es obligé d'interdir l'accès au moment ou un utilisateur ouvre un fichier et le modifie...
A moins d'écrire dans une base de données...


T@nguil y a de la vie...

Hors ligne

 

#9 24-01-2005 17:08:27

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

tangui a écrit:

ce n'est pas possible, tu es obligé d'interdir l'accès au moment ou un utilisateur ouvre un fichier et le modifie...
A moins d'écrire dans une base de données...

Ok.
Bon alors il faut que j'écrive dedans et je le bloque ?
ou bien je verouille et j'ecrit ?

Comment on vérouille un fichier ????
je sais pas faire!!!

A L AIDE!!


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#10 24-01-2005 17:26:30

tangui
Super chef du forum
Lieu: Bourg-lès-Valence -- Lyon
Date d'inscription: 22-10-2004
Messages: 442
Site web

Re: j'ai besoin de votre avis d'experts!

Qd klk1 ouvre le fichier, tu ajoutes une * en haut du fichier
un utilisateur B arrive, voit *, et donc ne peut la modifier
Qd l'utilisateur A a fini, il enlève l'*...
voit pas plus simple...

Les gens arrivent par un script que tu as fait? ou bien ils ont accès via l'explorateur windows?


T@nguil y a de la vie...

Hors ligne

 

#11 24-01-2005 17:33:19

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

En fait j'écrit dans un buffer en java et j'écrase le fichier existant par une methode "miseAjour()".
(il écrit la totalité des données mises en forme).


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#12 24-01-2005 17:37:56

Borusse
Mega Power Member
Date d'inscription: 09-11-2004
Messages: 175

Re: j'ai besoin de votre avis d'experts!

Je rejoint encore Yoda, putain on fait que de se rejoindre, faut s'arreter là dans nos rejoiement Yoda, sa peut plus durée.
En cours nous avons vu les lecteur, rédacteurs et même un TP sur le chemin de fer ou il fallait faire se croiser 2 trains, et ben c'est le même principe.
Heu sémaphore me rappel plus comment sa marche, je sais seulement que nous l'avons fait en C.

C'est le principe des comptes bancaires, que nous avons aussi vu en cours et TP.

Sinon si tu veut du code, j'en ai pas sous la main, par contre je passe chez toi ce soir papy, te faire plein de bisoux tongue


Papy tu n'es plus the only one "Power Member"

I'm the only one  "Powerfull Membré"

Hors ligne

 

#13 24-01-2005 17:55:06

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

Si l'heure au moment de l'enregistrement des données est exactement ( a la seconde près) la même que celle du fichier, j'interdis l'éciture, basta, non?!


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#14 25-01-2005 12:52:20

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

Allo ?


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#15 25-01-2005 14:02:31

Borusse
Mega Power Member
Date d'inscription: 09-11-2004
Messages: 175

Re: j'ai besoin de votre avis d'experts!

ween !

Stop flood non d'une pipe


Papy tu n'es plus the only one "Power Member"

I'm the only one  "Powerfull Membré"

Hors ligne

 

#16 25-01-2005 19:29:19

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

Tiens au fait Bobo, j'ai trouvé l'erreur qui m'empechait de gerer la fermeture de la fenetre principale (encore une fois grace au bloc-note, car au moins l'oeil ne voit que du code).

J'implémentais une methode tout en bas de ma classe :

Code:

protected void processWindowEvent(WindowEvent e) 
    {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
            System.exit(0);
        }
    }

Donc forcément...

Je l'ai virée et tout marche impéc' !

Dernière modification par papy (25-01-2005 19:29:49)


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#17 25-01-2005 19:32:15

papy
Mega Power Member
Date d'inscription: 03-11-2004
Messages: 302

Re: j'ai besoin de votre avis d'experts!

Donc en gros ça donne ça pour la gestion fermeture sur la croix de la fenetre (c'ets juste le début de la classe car j'ai 360 lignes sans avoir implémenté les 3/4 qu'il me reste à faire!)

Code:

public IhmGemach(String title)//Constructeur
    {
        
        super(title);//On instancie une JFrame
        final IhmGemach traille=this;//permet l'instanciation de la boite de dialogue dans le windowListener
        this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//Gestion perso de la fermeture de la fentre principale
        
//        On gère les liens de la fenètre principale
//==============================================================================
        this.addWindowListener(new WindowAdapter() {    
        public void windowIconified(WindowEvent e) {}
        public void windowClosing(WindowEvent e){
            tool.beep();
            BoiteDialogue dila = new BoiteDialogue(traille, "Quitter", "Voulez-vous quitter Imaje Gemach Center ?");
            if (dila.résultat == true)
            {
                
                traille.dispose();
                System.exit(0);
            }
            else 
            {
                System.out.println("Utilisateur à cliqué sur annuler");
                
                
            }
        }
        });

...
...

Dernière modification par papy (25-01-2005 19:33:06)


Le seul et unique "MEGA Power Member" à être papa!
Java, ce qui differentie les hommes, des jeunes garçons...

Hors ligne

 

#18 25-01-2005 23:45:32

tangui
Super chef du forum
Lieu: Bourg-lès-Valence -- Lyon
Date d'inscription: 22-10-2004
Messages: 442
Site web

Re: j'ai besoin de votre avis d'experts!

si tu veux installer un notepad avec coloration:
notepad plus plus:  http://ovh.dl.sourceforge.net/sourcefor … taller.exe


T@nguil y a de la vie...

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Classement Internet