Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité de passage
    Inscrit en
    mai 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : mai 2007
    Messages : 47
    Points : 4
    Points
    4

    Par défaut [JMS] Une exception manquée

    Bonjour,

    Je travaille avec JMS sous eclipse. Mon programme repose sur les topics. J'ai un producteur qui a pour role de créer des messages et les envoyer à un MOM (ActiveMQ). Tous se passe à merveille, mon programme foncitionne parfaitement.

    Cependant, en voulant faire des tests, j'ai stopé ActivMQ, et puis lancé mon programme => Le résultat atendu est une exception (affichage d'un message d'erreur, puisque j'ai catché l'exception). Mais rien de tout cela ne se produit, le programme se contente d'attendre que je relance ActiveMQ.

    À l'aide d'un debug j'ai constaté que le programme s'arrete au niveau de l'instruction : connection.start(); il reste à attendre le relancement du MOM mais en aucun cas il affiche "Impossible to start a connection". Hors moi je désire avertir l'utilisateur que le MOM est stoppé. Une idée ?
    Code :
    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
     
     
    public void connect() throws MOMException {
    		if (connection == null) {
    			ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "failover://tcp://" + hostname +":61616");
     
    			try {
    				connection = connectionFactory.createConnection();
    			} catch (JMSException e) {
    				throw new MOMException("Impossible to create a connection", e);				
    			}
                try {
    				connection.start();
    			} catch (JMSException e) {
    				throw new MOMException("Impossible to start a connection", e);
    			}
        		try {
    				session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    			} catch (JMSException e) {
    				throw new MOMException("Impossible to create a session", e);
    			}
        		try {
    				destination = session.createTopic(topic);
    			} catch (JMSException e) {
    				throw new MOMException("Impossible to create a  topic", e);
    			}
    		}
    	}

    Merci

  2. #2
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 810
    Points
    34 810

    Par défaut

    il faut retirer le failover. Le principe du failover dans l'url c'est justement de tourner en boucle sur l'ensemble des serveurs mentionné jusqu'à ce qu'e l'un fonctionne
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et
    Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.

  3. #3
    Invité de passage
    Inscrit en
    mai 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : mai 2007
    Messages : 47
    Points : 4
    Points
    4

    Par défaut

    Bonjour,

    Merci pour votre réponse. Je vais essayer cela tout de suite

  4. #4
    Invité de passage
    Inscrit en
    mai 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : mai 2007
    Messages : 47
    Points : 4
    Points
    4

    Par défaut

    Ahh non ça ne marche pas non plus

  5. #5
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 810
    Points
    34 810

    Par défaut

    Vous avez quoi comme code maintenant et quel est le comportement de votre application quand le broker est coupé?
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et
    Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.

  6. #6
    Invité de passage
    Inscrit en
    mai 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : mai 2007
    Messages : 47
    Points : 4
    Points
    4

    Par défaut

    La méthode connect est appelée par par une autre classe et cela donne ça :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    logger.info("Trying to connect to activeMQ ...");
    try {
    Producer.connect();
    } 
    catch (MOMExceptione )
    {
    logger.fatal("activeMQ connection error", e);
    }
    Mon programme reste bloqué au niveau de : Trying to connect to tactiveMQ ...

  7. #7
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 810
    Points
    34 810

    Par défaut

    on peux voir le contenu de la méthode connect? Parce que si y a pas de serveur ouvert, ca devrais directement remonter une socketException
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et
    Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •