AFAIK, you just need to configure the brokerURL of activeMQ component with the failover transport URI[1], like this

<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="brokerURL" value="failover://(tcp://localhost:61616,tcp://remotehost:61616)?initialReconnectDelay=100
"/>
  </bean>

And I don't think current camel-activemq endpoint's URI support to configure the failover transport dynamically, as the brokerURL is transparent to camel-activemq endpoint.

Willem

Ricardo Melo wrote:
Hi,

I have an issue about using the activemq failover. I think you can help me.

My system uses camel (using cxf, mail, tcp and other components) and uses an
activemq queue to send out messages, using a variable number of routes "TO"
destinations. Recently, We've found the need to use activemq failover when
sending a message, and give a message to user if the communication has a
problem.

In my system all camel routes can be dynamically added/updated, using system
received XML messages that specifies the route name, transport type, address
and an unique id. For each added route, an activemq queue is created with
the sufix "_<routeId>" in its name. Then a camel route is created to send
messages from that queue to the route address specified in the message. Thus
messages can be sent by email, web services, or whatever.

Example:
Message contains message "Hello", route id=1, transport=file, address=:/dir
Would create a route from("activemq:queue:out_1".to("file:/dir")
Then messages to route id=1 would be put in the above queue and then in the
file:/dir

The questions are:

1) How can I declare the failover in this situation?

1) How can I add the failover to the dynamically added queue, using the
received route 'TO' address contained in the message? Is it possible to
configure dynamically, using a RoutBuilder?

I need to declare a failover that tries to send the message to the "TO"
address contained in the message, trying for 1 second.

2) Is it possible to dynamically declare the failover, and if the route is
updated, update the failover configuration?

Thank you,
Ricardo Melo


Reply via email to