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

Websphere Java Discussion :

Update de messages JMS


Sujet :

Websphere Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Par défaut Update de messages JMS
    Bonjour à tous,

    Mon application consiste à courter des services de clients à fournisseur. Dans le cas où le fournisseur n'est pas joignable, nous stockons les messages dans une file JMS et plus tard nous reessayons de rappeler le fournisseur. Le nombre de reessai est fini et à chaque essai ce nombre doit diminuer. A chaque essai, si la connection au fournisseur echoue, le message reste stocké dans la file (réalisé sous forme de transation)

    Pour l'instant j'ai une possibilité mais je ne sais pas si elle est optimale:
    On stocke un objet qui contient le message et un nombre de retry. Dans le cas ou l'appel au fournisseur échoue, il faudrait recupérer ce nombre et le modifier => c'est à dire updater le message qui est en file.

    Avez vous une idée de comment réaliser cette solution ou plus généralement comment updater un message en file à l'intérieur d'une transaction?

    Merci pour votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut seulement jms ou avec MQ ?
    Bonjour,
    Si vous utiliser MQ pour la file d'attente, MQ gère lui-même le nombre de tentative d'essai d'envoi du message suite à un rollback applicatif comme vous le souhaitez.

    Pour cela, il suffit de paramétrer la file d'attente avec les options :

    backout requeue Name : "nom de la nouvelle destination de la queue" souvent une dead letter queue
    backout threshold : "le nombre de tentative max" ,exemple 10

    Voila,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Par défaut
    Bonjour,

    Merci pour ta réponse.
    Donc non nous n'utilisons pas MQ mais seulement JMS.
    J'ai vu une propriété JMS qui permet de récuperer le nombre de "récuperation" du message qui s'appelle JMSXDeliveryCount.
    Ca a l'air de bien marcher seulement je ne sais pas s'il y a des limitations? Est-ce une propriété fiable?

    Merci.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    JMSXDeliveryCount semble être la solution. Pas de limitations ni de traitement. A vous de le coder.
    Pour le reste, je suis plus administrateur que développeur.
    Bon courage
    Fred

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Par défaut
    Merci Fred,

    Quand tu dis "a vous de le coder" de quoi parles-tu exactement. A ce que j'ai pu voir (assez rapidement), c'est une propriété qui est mise à jour automatiquement dès qu'on récupere le message.
    N'y-at-il pas des cas ou par exemple la propriété JMSXDeliveryCount serait mise à jour mais qu'en fait nous n'avons pas récupéré le message?
    Je ne connais pas trop JMS, du coup je suis sur mes gardes

    Merci

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    C'est attribut JMS s'incrémente normalement à chaque rollback du message par l'application souhaitant "getter" le message. c'est a dire si le commit échoue donc que vous n'avez pas récuperer entièrement le message et pas supprimer de la file jms.
    Dans le cas de Websphere MQ, à partir d'un seuil, MQ peut automatiser un traitement pour ce message "invalide" pas dans JMS apparement.
    Dans le cas de JMS, Je pense que vous devez coder un traitement pour supprimer ce message "obsolète" dans votre appli client JMS pour déboucher la file si vous êtes en FIFO pour éviter un bouchon. car après, on peut arriver à des files system full sur les serveurs et le tout plante....

    Voila, j'espère que cela vous aide.

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

Discussions similaires

  1. [EJB3] Recevoir des messages JMS dans un managed bean
    Par FrenchFrogger dans le forum Java EE
    Réponses: 1
    Dernier message: 23/07/2009, 20h11
  2. Consommation de message JMS
    Par krum dans le forum Wildfly/JBoss
    Réponses: 20
    Dernier message: 20/07/2009, 09h29
  3. Problème VB6 .Update(CDO.Message)
    Par Maille dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/04/2009, 15h10
  4. re-emission de message JMS
    Par schausson dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 27/02/2009, 09h45
  5. Consommation de messages JMS par une application Web
    Par romain3395 dans le forum Wildfly/JBoss
    Réponses: 7
    Dernier message: 09/02/2009, 21h41

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