Question

ma route de chameau est donné ci-dessous

 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
    <route>
      <from uri="bean:SendClass?method=send" />
      <to uri="jms:MyQueue" pattern="InOnly" />
    </route>
    <route>
    <from uri="jms:MyQueue" />
    <to uri="bean:recvClass?method=recv" />
    </route>
  </camelContext>

La méthode d'envoi envoie des messages quand il est activé par une 3ème partie Pojo à un intervals.But irrégulier, le problème est que je pense chameau est remise en marche les routes, une fois le message est reçu par le haricot recv et renvoyer le même message (cent de d'entre eux dans une seconde) .Ideally je veux qu'il envoyer le message lorsque la méthode d'envoi s'active et un nouveau message a été créé (i.e. JMS File d'attente doit être d'avoir un message est unique) .Comment ne le fais-je?

solutions possibles étant:

  1. est leur un attribut que je peux placer à l'intérieur du <from.../> pour le faire?
  2. écrire un processeur de filtre de message unique entre l'envoi de haricots et de la file d'attente.
  3. Leur autre façon de l'acheminer sans utiliser le <from uri="bean:..." />

Merci sanre6

Était-ce utile?

La solution

Vous ne devriez pas avoir la 1ère voie. Lorsque vous faites cela, vous dites Camel constamment appeler la méthode d'envoi sur le grain de café et de l'acheminer. Et donc pourquoi vous voyez 100s de messages par seconde.

Au lieu de cela, vous devez utiliser une API Camel à partir de votre code de haricots et d'envoyer le message à la file d'attente JMS. Par exemple en utilisant un ProducerTemplate.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top