2008-11-05 7 views
1

J'essaye d'obtenir une démo simple avec ActiveMQ qui montrera une route TCP vers TCP. Je code les extrémités et les routes dans un contexte camel dans mon fichier de configuration activemq.xml.Routage simple des points de terminaison TCP dans activemq quoi de mal?

<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring"> 

    <package>org.myorg.codec</package> 

    <endpoint id="listener_A" uri="mina:tcp://localhost:42000?sync=false&amp;textline=true"/> 
    <endpoint id="listener_B" uri="mina:tcp://localhost:42001?sync=false&amp;textline=true"/> 

    <route> 
     <from uri="activemq:listener_A"/> 
     <to uri="activemq:listener_B"/> 
    </route> 
    <route> 
     <from uri="activemq:listener_B"/> 
     <to uri="activemq:listener_A"/> 
    </route> 
</camelContext> 

Une idée pourquoi cela ne fonctionne pas?

Le serveur AMQ ne semble pas ouvrir un port d'écoute. Edit: L'intention ici, en tant que simple démonstration, est de se connecter à ActiveMQ avec deux terminaux Telnet (A et B) et de pouvoir acheminer les messages de l'un à l'autre via le serveur de file d'attente des messages. Plus tard, je peux essayer de filtrer ou de router en fonction du contenu.

Répondre

1

Je suis un peu confus par votre fichier de configuration. Qu'est-ce que vous essayez de faire exactement?

Vous avez défini 2 points de terminaison pour l'utilisation de MINA (qui n'utilisera pas du tout ActiveMQ); alors vous utilisez une route d'une liste d'attente ActievMQ listener_A à listener_B puis listener_B à listener_A (qui est une boucle récursive). Peut-être que si vous commencez à décrire ce que vous voulez faire, nous pourrons comprendre à quoi devrait ressembler le XML.

Soit dit en passant, si vous voulez juste faire référence aux critères d'évaluation que vous avez défini, utilisez le ref = « name » attribut plutôt que uri = « ... ».

par exemple.

<route> 
    <from ref="listener_A"/> 
    <to ref="listener_B"/> 
</route> 

Tout ce qui est dit - vous avez tendance à obtenir un meilleur soutien plus rapide & sur Camel via le Camel User Forum

+0

@ James, merci, votre point de la boucle est une évidence aveuglante. – JeffV

+0

mais voulez-vous une boucle infinie - où envoyer 1 message va à peu près supprimer MINA/ActiveMQ traitant le même message qui circule? Les boucles dans les files d'attente de messages/programmes asynchrones sont normalement très mauvaises –

0

Plus sur ce point:

Lorsque le point final est défini comme une connexion mina tcp, il ne peut pas être identifié comme "ActiveMQ :: listener_A"

<endpoint id="listener_A" uri="mina:tcp://localhost:42000?sync=false&amp;textline=true"/> 

cela est faux:

<from uri="activemq:listener_A"/> 

cela fonctionne:

<from ref="listener_A"/> 

Donc, cela:

<from ref="mina:tcp://localhost:42000?sync=false&amp;textline=true"/> 
Questions connexes