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

Servlets/JSP Java Discussion :

Servlet se lancant sur deux Serveur


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 2
    Par défaut Servlet se lancant sur deux Serveur
    Bonjour à tous,

    Voilà j'utilise une servlet qui crée un thread, je lance celle-ci sur un serveur... sauf que le même ear est lancé sur un serveur redondant or la servlet ne doit démarrer sur ce dernier que dans le cas ou le serveur principal tombe (logique), sachant que la servlet attaque la même BDD depuis les deux serveurs elles traitent les données en double et ceci est assez embêtant.

    ceci est ma classe servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    public class LancerScrute extends HttpServlet {
    
        private Thread threadTempo;
        
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
            System.out.println("Get : La servlet marche");
        }
    
        public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
            System.out.println("Post : La servlet marche");
        }
    
        
        public void init() throws ServletException {
    
            super.init();
            try{
                Scrute       leScrute=Scrute.getInstance(getInitParameter(Scrute.KEY_PERSISTANCE));
                  leScrute.runWorker();
              }catch(Exception e){
                throw new ServletException(e);
            }
        }
        
        public void destroy() 
        {
            try{
                System.out.println("Demande d'arret du thread de tempo par la servlet");
                Scrute leScrute=Scrute.getInstance(getInitParameter("persistanceFluxXML"));
                leScrute.arret();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        
        
        public Thread getThreadTempo() {
            return threadTempo;
        }
    
        
        public void setThreadTempo(Thread threadTempo) {
            this.threadTempo = threadTempo;
        }
        
    }
    et voici la méthode runWorker() qui crée le thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void runWorker() {
          mShutdown=false;
              mWorker = new Thread( this );
              mWorker.start();
    }
    Est-ce-qu'il y a moyen d'êmpecher cette servlet de démarrer sur le serveur redondant? sachant que le seul rapport entre les deux servlets qui se lancent sur les deux serveurs est la BDD, j'ai pensé à mettre un marqueur (genre nomServeur et timeStamp) dans la BDD afin de tracer laquelle des deux servlets tourne!! mais je m'en sortirai jamais

    Pensez-vous qu'il y a plus simple?
    Je vous remercie d'avance de votre aide


  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    ton aplication se trouve sur des clusters ?

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 2
    Par défaut
    En quelque sorte oui, puisque il y a deux serveurs et que la servlet tourne sur les deux sachant que les seux serveurs sont indépendants le deuxième doit être dispo pour la reprise en cas de défaillance du premier.

    Du coup je suis obligé de faire tourner la servlet sur les deux serveurs vu que c'est du traitemeent en temps réel, mais le process qui tourne sur le 2ème ne doit pas traiter de données tant que le 1er tourne!!

    Penses-tu au mécanisme du Token Ring?

  4. #4
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Je ne sais pas ce que c'est le token ring :p

    et ton traitement ne pourrait pas être réaliser via un EJB JMS ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/02/2008, 09h12
  2. Requetes multi-bases sur deux serveurs differents ?
    Par romainp dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 01/08/2007, 20h22
  3. SSO tomcat et php sur deux serveurs distincts
    Par vincinou dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 05/06/2007, 15h40
  4. Réponses: 7
    Dernier message: 16/03/2007, 14h53

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