Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1547 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Je veux une seule instance d'un singleton pour toutes les jvms

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Je veux une seule instance d'un singleton pour toutes les jvms

n°1891187
FrenchFrog​ger
http://antony-ibanez.eg2.fr/
Posté le 04-06-2009 à 09:55:23  profilanswer
 

Voilà, mon programme tourne sous Jboss 5.
J'ai un singleton qui est utilisé par mes classes ejb et par mes classes "normales" (aucune classe n'hérite du singleton, elles l'utilisent seulement).
Le problème, c'est que j'ai deux jvm: une qui fait tourner les conteneurs ejb et une qui fait tourner mon programme. J'ai donc deux instances du singleton, une pour chaque jvm.
 
Comment faire pour qu'il n'y ait qu'une seule instance du singleton, commune aux deux jvm?

mood
Publicité
Posté le 04-06-2009 à 09:55:23  profilanswer
 

n°1891211
nerisson
Pic-pic
Posté le 04-06-2009 à 10:57:16  profilanswer
 

Impossible d'avoir la même instance sur 2 JVMs différentes.


---------------
Light is right
n°1891214
igarimasho
Posté le 04-06-2009 à 10:59:46  profilanswer
 

Il faudrait créer une jvm 'serveur' et tes autres jvm viennent s'y connecter pour récupérer le singleton commun.

n°1891263
FrenchFrog​ger
http://antony-ibanez.eg2.fr/
Posté le 04-06-2009 à 12:19:40  profilanswer
 

Et en passant par RMI?
J'ai trouvé ça: http://www.javaspecialists.eu/archive/Issue052.html
mais je ne suis pas sûr d'avoir bien compris (je suis mauvais en anglais).
Les solutions des paragraphes "Clustering and RMI Singletons" et "Service Locators" s'appliquent bien à mon cas?

n°1891565
FrenchFrog​ger
http://antony-ibanez.eg2.fr/
Posté le 05-06-2009 à 11:08:57  profilanswer
 

J'ai essayé d'obtenir le singleton par rmi: je crée le singleton sur la jvm où il y a mes ejbs, et la jvm de mon client demande et obtient le singleton, par rmi. Mais ça ne règle pas le problème: ça à l'air d'être une copie du singleton que je reçoit. Le singleton que je reçoit dans ma jvm client via rmi n'a pas la même référence que le singleton de la jvm de jboss (où il y a les ejbs), et lorsque je change des valeurs du singleton de la jvm de jboss, ces changements ne se répercutent pas sur le singleton de ma jvm client.
 
Est-ce qu'il y a un moyen (mémoire partagée?) pour avoir un singleton commun à plusieures jvms, de façon que les changements dans le singleton soient visibles dans toutes ces jvms?

n°1891611
nerisson
Pic-pic
Posté le 05-06-2009 à 11:58:04  profilanswer
 

Citation :

Impossible d'avoir la même instance sur 2 JVMs différentes.


Au mieux tu peut avoir une copie synchronisée


---------------
Light is right
n°1936133
wyatt-earp
Posté le 29-10-2009 à 09:57:33  profilanswer
 

FrenchFrogger a écrit :

Est-ce qu'il y a un moyen (mémoire partagée?) pour avoir un singleton commun à plusieures jvms, de façon que les changements dans le singleton soient visibles dans toutes ces jvms?


 
Et pourquoi obtenir a référence du singleton?  Si l'un des singletons est le singleton "master", c'est-à-dire, l'une des JVM est la JVM "master", pourquoi pas lui demander ce dont tu as besoin, comme un service, soit une commande "get", soit un commande "update", et puis, utiliser la méthode synchronized dedans du singleton "master" ?

n°1938708
el muchach​o
Comfortably Numb
Posté le 08-11-2009 à 10:08:20  profilanswer
 

FrenchFrogger a écrit :

Et en passant par RMI?
J'ai trouvé ça: http://www.javaspecialists.eu/archive/Issue052.html
mais je ne suis pas sûr d'avoir bien compris (je suis mauvais en anglais).
Les solutions des paragraphes "Clustering and RMI Singletons" et "Service Locators" s'appliquent bien à mon cas?


Je dirais oui pour Service locator. Tu fais un service et non un singleton. Si tu te poses cette question, c'est probablement que tu n'as pas compris l'architecture du système que tu es censé développer, va demander des explications à l'architecte.


Message édité par el muchacho le 08-11-2009 à 10:13:53

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Je veux une seule instance d'un singleton pour toutes les jvms

 

Sujets relatifs
Acceder à un tableau via une seule variable via un pointeur?probleme avec 2 mysql_fetch_assoc dans une seule while
Résolu - Attendre dans un destructeur / Tester une instance[C#] Faire une seule instance de dll pour deux programmes
[CodeIgniter] Créer une instance d'un modèle[Access] Regrouper plusieurs résultats d'1 requête sur 1 seule ligne?
executer un programme en une seule ligne de commande[actionscript] bannière defilante : une seule image défile
Etendre une classe pour en faire un singleton 
Plus de sujets relatifs à : Je veux une seule instance d'un singleton pour toutes les jvms


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR