IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Refresh des elements swing dans une configuration multi instance


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 58
    Points
    58
    Par défaut Refresh des elements swing dans une configuration multi instance
    Bonjour à tous,

    J'ai développe un client lourd en swing qui se connecte a une bdd.
    Ce client possède beaucoup de jtable qu'il est possible de mettre a jour avec ce même client.
    Exemple : un client supprime une ligne dans une jtable, je fais un refresh de la jtable. LA ligne n'est plus visible. J'apellerai ce client client 1 sur machine 1. Tout fonctionne très bien jusque là.


    Mon problème intervient lorsque un deuxième client lourd est lancé, c'est a dire lorsque une autre personne lance le fichier jar a son tour sur une autre machine. J'apellerai ce client client 2 sur machine 2.

    Et la si je realise une mise a jour sur le client 1, la jtable est refresh sur le client 1 mais pas sur le client 2. Idem si je fais une mise a jour sur le client 2, pas de refresh sur le client1.

    Existe il une solution apporté par swing pour résoudre ce genre de problème ?

  2. #2
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Ce n'est pas vraiment un problème spécifiquement Swing ; plutôt un problème de logique et de communication : pour que le client 2 sache qu'il doit rafraichir sa JTable, il faut qu'il reçoive un signal qui le prévient que la table sous-jacente a été modifiée.

    Il faut donc que le serveur envoie à chaque client connecté un signal disant que la table a été modifiée ; pour ce faire, il faut que chaque client écoute un port IP (qu'il soit donc serveur sur ce port), sur lequel le serveur de base de données envoie un message chaque fois qu'une table est modifiée.

    Par ailleurs, que se passe-t-il, dans ton appli, dans le cas ou client1 et client2 modifient la même ligne de la base de données ?
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 58
    Points
    58
    Par défaut
    Par ailleurs, que se passe-t-il, dans ton application, dans le cas ou client1 et client2 modifient la même ligne de la base de données ?
    Ce type de cas de pose pas de problème dans la mesure ou la base de donnée est capable de poser des verrous/ gérer les accès au SGBD Mysql via le mécanisme des transactions.

    Il faut donc que le serveur envoie à chaque client connecté un signal disant que la table a été modifiée ; pour ce faire, il faut que chaque client écoute un port IP (qu'il soit donc serveur sur ce port), sur lequel le serveur de base de données envoie un message chaque fois qu'une table est modifiée.
    Avant de monter une usine a gaz, genre serveur ip ou mecanisme de communication JMS, ou RMI, je voulais savoir si java propose une solution simple pour gerer ce problème que tout le monde rencontre dans ce type d'environnement multi instance.


    A défaut d'avoir une réponse tout prête, quelqu'un à t il des ressources ou bien des mots clés pour voir les best practices utilisé pour ce genre de cas ?

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Non, vu que les clients n'ont aucun moyen de communiquer entre eux de base.

    C'est au développeur de prévoir ce genre de choses, en général en mettant un serveur entre les deux (que ce soit basé sur des WS, des topics JMS ou que ne sais-je encore...)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 58
    Points
    58
    Par défaut
    C'est au développeur de prévoir ce genre de choses, en général en mettant un serveur entre les deux (que ce soit basé sur des WS, des topics JMS ou que ne sais-je encore...)
    Avez vous des exemples/tutos que suivent les developpeurs pour gerer ce type d'action ? sur la base de WS, JMS...

    merci par avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/11/2012, 13h42
  2. Réponses: 0
    Dernier message: 02/12/2008, 22h19
  3. modifier des données dans une requête multi table
    Par Bluman dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/02/2008, 10h00
  4. Element graphique dans une forum dans des theads spécifiques
    Par Laur3nT dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/12/2007, 17h52
  5. Utiliser des objets SWING dans une vue RCP
    Par manuga72 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 20/10/2006, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo