Found a workaround ... Topics are replaced by queues + persistent messages Durable subscribers are replaced by other queues + camel routing to feed them.
Camel routes can be updated live using JMX/Jolokia call A benefit from using Camel is also that I can suspend the routing process. For reference, here's my camel.xml file (works fine) : <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <route> <description>From Log.Raw to specialized Log.Raw queues</description> <from uri="activemq:queue:Log.Raw"/> <choice> <when> <spel>#{request.headers['domain'].equals('ORDO')}</spel> <to uri="activemq:queue:Log.Raw.ORDO"/> </when> <when> <spel>#{request.headers['domain'].equals('BO')}</spel> <to uri="activemq:queue:Log.Raw.BO"/> </when> <otherwise> <to uri="activemq:queue:Log.Raw.Trash"/> </otherwise> </choice> </route> </camelContext> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent" > <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="vm://task?create=false"/> <property name="userName" value="${activemq.username}"/> <property name="password" value="${activemq.password}"/> </bean> </property> </bean> </beans> -- View this message in context: http://activemq.2283324.n4.nabble.com/3-machine-cluster-replicated-leveldb-durable-subs-massive-message-loss-on-restart-tp4683411p4683473.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.
