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

API standards et tierces Java Discussion :

JMS Request Reply


Sujet :

API standards et tierces Java

  1. #1
    Membre confirmé Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par défaut JMS Request Reply

    Voilà j'utilise JMS avec l'implémentation d'Apache : ActiveMQ.

    Pour mon application d'entreprise; je souhaite mettre en place un principe de requete/réponse entre deux classes .

    Le principe est simple :

    une classe requester envoie un message JMS vers une queue de destination puis reste en écoute sur une autre queue de réponse en mode synchrone (bloquée jusqu'à réception de la réponse )

    une classe replier est en écoute sur la queue de requete et à chaque message arrivé elle renvoie une réponse sur la queue de réponse..

    Le requester reconnait que la réponse reçue le concerne en utilisant l'attribut correlationID de l'objet Message.

    Plus de détail sur ce site : http://www.enterpriseintegrationpatt...msExample.html

    Le problème c'est que je souhaite que le requester lise tous les messages l'un après l'autre et ne sorte de la queue que le message qui le concerne. Pour cela, la seule chose que j'ai trouvé c'est de jouer sur l'attribut acknowledge mode de la session mais j'ai encore un soucis :
    - si je mets auto-acknowledge : chaque message lu par le requester est sorti de la queue même s'il ne le concerne pas . ainsi ce message est perdu pour ces vrais propriétaires ( les autres requesters )

    - si je met CLIENT.acknowledge : un message lu n'est sorti de la queue que si l'application l'acquitte manuellement. mais dès que je fais msg.acknowledge() tous les messages sont sortis pas seulement celui acquitté.

    Quelqu'un peut il m'aider sur ce problème assez complexe ....??

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Par défaut
    Ceci devrait t'aider.

    Mais jms ce n'est pas fait pour faire du synchrone à la base. Si ca t'intéresse regarde cette excellent article Choosing among JCA, JMS, and Web services for EAI

  3. #3
    Membre confirmé Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par défaut
    Ce qui se trouve dans le 1er lien c'est exactement ce que j'ai fait ... mon seul probleme c'est quand il y a plusieurs messages dans la queue de réponse .. comment un objet qui effectue une requete peut sortir de la queue de réponse le message qui lui correspond et laisser tous les autres , ...

    Le choix du JMS pour implémenter un request/reponse vient du fait qu'avant on avait conçu de l'utiliser mais en asynchrone mais est venu le besoin de s'assurer que le message est bien arrivé avant d'effacer l'information de l'application émettrice .
    A ce moment là, on a pensé changer pour les WebServices mais :
    1 - J'ai trouvé les patterns de request/response pour JMS et j'ai donc pensé que c'était pas si absurde
    2 - On a remarqué que les web services étaient assez lents
    Me suis je trompé dans mes conclusions?

  4. #4
    Membre confirmé Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par défaut
    ça marche avec l'exemple qui se trouve dans le lien donné par @Ikey: http://activemq.apache.org/how-shoul...-with-jms.html

    voici des points relevés dans l'article :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Use the following summary of decision points:
     
    You have existing Java applications or plan a new one: use JMS or JCA.
     
    You need to interact with partners: use Web services for transport and connection.
     
    You need to cross the barrier between languages: use JMS or Web services.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Multipart]Analyse HttpServletRequest request
    Par josoft dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 17/10/2003, 16h41
  2. [jsp]problème avec request.getParameter(...)!
    Par fadoua dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 01/09/2003, 13h26
  3. Envoyer un message icmp (Echo Request)
    Par ovdz dans le forum Développement
    Réponses: 5
    Dernier message: 19/06/2003, 14h14
  4. Request.RemoteAddr, Request.RemoteHost
    Par Pierre FORAZ dans le forum XMLRAD
    Réponses: 6
    Dernier message: 19/03/2003, 13h43
  5. [XMLRAD] Décoder Request.Query
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 8
    Dernier message: 10/01/2003, 16h40

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