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

Glassfish et Payara Java Discussion :

JMS Glassfish - Plusieurs queues de message


Sujet :

Glassfish et Payara Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut JMS Glassfish - Plusieurs queues de message
    Bonjour à tous,

    J'ai un petit problème avec l'utilisation de JMS avec GlassFish.

    Je m'explique :
    J'ai deux queues (une de requete et une de reponse), mon client enverra un message sur la première où un message driven bean le recevra et le traitera. Jusque la, aucun problème tout marche nikel.

    Cependant, lorsque mon MDB envoie sa réponse, il arrive (1 à 2 fois sur 3) que le message, qui devrait aller sur la file réponse, se retrouve sur la queue de requete et donc fait boucler mon MDB... (trace à l'appui).

    Il semblerait que ce soit un probleme "physique" cad le support de mes queues qui est le même. Cependant, dès que je change ca en mettant dans le sun-ressources.xml des "physical queue" différentes,
    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
     
    <admin-object-resource enabled="true" jndi-name="Query" object-type="user" res-adapter="jmsra" res-type="javax.jms.Queue">
        <description/>
        <property name="Name" value="PhysicalQuery"/>
      </admin-object-resource>
      <connector-resource enabled="true" jndi-name="jms/QueryFactory" object-type="user" pool-name="jms/QueryFactoryPool">
        <description/>
      </connector-resource>
      <admin-object-resource enabled="true" jndi-name="Response" object-type="user" res-adapter="jmsra" res-type="javax.jms.Queue">
        <description/>
        <property name="Name" value="PhysicalResponse"/>
      </admin-object-resource>
      <connector-resource enabled="true" jndi-name="jms/ResponseFactory" object-type="user" pool-name="jms/ResponseFactoryPool">
        <description/>
      </connector-resource>
    j'ai deux problèmes différents :

    1) GlassFish ne me crée qu'une seule queue physique (visible via Interface web)
    2) Mon MBD ne recoit plus les requetes.

    Auriez vous une quelconque idée de ce qu'il se passe et comment le résoudre?

    Merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut separer la consommation du message et le "forward" du message
    bonjour,


    le MDB consomme les messages mis a disposition par le broker sur sa queue, selon des parametres définis (lot de messages, mode d'accusé, etc)

    et puis , un fois le message acquitté, on peut dire "c'est fini" d'un point de vue jms (message délivré et consommé)

    il faut donc bien tester/valider cet aspect de consommation et choisir avec soin les comportements attendus (voir parametres suivants)

    si ensuite , on prend la decision de "pousser" (envoyer/publier) le message recu (selon certains criteres (type pattern filter/pipe) c'est une *autre tache* ... presque "independante" (selon le niveau de transaction demandé)
    de la precedente (donc le probleme est ailleurs)

    il faut donc tester les deux fonctions separemment, puis integrer la "production" du message dans le MDB.

    on trouve un petit outil fort sympathique avec OpenMQ (<GF_INSALL>\imq\demo\applications\uclient\UniversalClient.java) qui permet de produire/consommer des messages JMS pour mener les tests
    on peut aussi le faire avec HermesJMS qui s'integre maintenant a OpenMQ (des articles existent (celui de Tom Barett , de tete))

    @MessageDriven(mappedName = "jms/outQueue", activationConfig = {
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
    ...
    ...
    })
    public class SimpleMDBBeanBean implements MessageListener {

    public void onMessage(Message message) {

    try {

    do something with the message

    ...

    hth,
    didier

Discussions similaires

  1. Plusieurs destinataires à un message
    Par thetom dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 27/02/2009, 11h44
  2. [JMS/JORAM] Renvoi automatique du message
    Par bapfuror dans le forum Java EE
    Réponses: 2
    Dernier message: 16/02/2009, 08h32
  3. [Thread]Queue de messages
    Par homeostasie dans le forum Visual C++
    Réponses: 2
    Dernier message: 15/12/2006, 13h38
  4. Créer plusieures file de message différentes
    Par progamer54 dans le forum Linux
    Réponses: 6
    Dernier message: 06/04/2006, 15h36
  5. [winsock] Queue des messages ?
    Par Ruffi dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 06/12/2005, 05h19

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