Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
AW: [smila-user] JMS broker configuration for multiple machines

Hi Giorgio,

let me see if I understand that correctly:

You try to run Connectivity (Crawler/Agent) on host Indy.
The JMS Broker (Queues) and BPEL Processing should run on host Marty (only).

If that's correct, you won't need changes on any JMS.properties.

First, you don't need a JMS Broker (a Queue) on host Indy at all, because you won't need Queues there.
(But it also doesn't matter if one is started here for localhost, so leave JMS.properties as they are)

And the JMS Broker on Marty is well configured with:
  java.naming.provider.url=vm:(broker:(tcp://localhost:61616?....
(Ok, you can use "Marty" instead of "localhost" here as you wrote below, that's ok, too.)

The more interesting thing is the QueueWorkerConnectionConfig.xml and QueueWorkerListenerConfig.xml.
As you wrote correctly, you have to change the QueueWorkerConnectionConfig
on Indy because you want to route messages to the JMS Broker on Marty.

But: The QueueWorkerConnectionConfig is also used by the Listener on Indy!
So you are right - Indy Listener is stealing messages from the queue.

To solve this, just edit the QueueWorkerListenerConfig.xml on Indy, and e.g. remove or comment out the <Rule> that is contained there. 
So Indy won't listen (and stealing) on Marty's Queue any more.

Best regards,
 Andreas

P.S. If you have any further questions/feedback just let us know!


> -----Ursprüngliche Nachricht-----
> Von: smila-user-bounces@xxxxxxxxxxx [mailto:smila-user-bounces@xxxxxxxxxxx] Im Auftrag von Giorgio
> Sironi
> Gesendet: Donnerstag, 8. April 2010 17:19
> An: smila-user@xxxxxxxxxxx
> Betreff: [smila-user] JMS broker configuration for multiple machines
> 
> Hello everyone.
> I'm doing academic work which involves the usage of SMILA. In
> particular, I'm trying to get the Connectivity and Processing/Data
> Flow components to run on two different machines. In my configuration,
> this means the JMS broker on node Marty should be configured to
> receive from node Indy (Marty and Indy are the hostnames.)
> I configured the jms.properties on Marty like this:
> 
> java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory^M
> java.naming.provider.url=vm:(broker:(tcp://Marty:61616?jms.useAsyncSend=true)?persistent=true)?marshal
> =false
> 
> And on Indy like this:
> 
> java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory^M
> java.naming.provider.url=vm:(broker:(tcp://Marty:61616?jms.useAsyncSend=true)?persistent=true)?marshal
> =false^M
> 
> The QueueWorkerConnectionConfig.xml on Indy is:
> <QueueWorkerConnectionsConfig xmlns="http://www.eclipse.org/smila/queue";
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xsi:noNamespaceSchemaLocation="schemas/QueueWorkerConfig.xsd"
> >
>   <ConnectionConfig Id="broker1">
>     <URL>tcp://Marty:61616</URL>
>     <!--<URL>vm://localhost</URL>-->
>     <User>any</User>
>     <Password>any</Password>
>     <ConnectionFactory>org.apache.activemq.ActiveMQConnectionFactory</ConnectionFactory>
>   </ConnectionConfig>
> </QueueWorkerConnectionsConfig>
> 
> while the one on Marty keeps pointing to localhost (it's the same?)
> 
> However, I cannot get this to work and I feel the Listener on Indy is
> stealing the messages for Marty since in JMS Queues only one worker
> can acknowledge a message. How can I disactivate the Listener on Indy
> and get the messages delivered to Marty? Am I also doing something
> else wrong?
> 
> Regards,
> --
> Giorgio Sironi
> Piccolo Principe & Web Engineer
> http://giorgiosironi.blogspot.com
> http://twitter.com/giorgiosironi
> _______________________________________________
> smila-user mailing list
> smila-user@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/smila-user


Back to the top