Note that the cluster engine is a 'jbi' cluster engine and currently
only works with JBI endpoints.  It's possible to use those with NMR
endpoints, but you'd have to use the JBI targetting system in order to
make that possible.

On Thu, Nov 25, 2010 at 11:16, Jérémie <jeremie.bre...@gmail.com> wrote:
> Hi,
>
> I have the same requirement : Using shared NMR endpoints with camel.
>
> After reading the source of the NMR implementation of smx :
> - NMR Endpoint are not automatically shared. You have to declare them using
> a ClusterRegistration and configure the "JBI Cluster Engine" (smx come with
> a spring xml with defaults values which should work - maybe just rename the
> cluster of each smx instance)
>
> The registration is something like this :
>
> <bean 
> class="org.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration">
>        <property name="endpointName" value="xxx" />
>  </bean>
>
>
> I managed to call from camel a remote "standard" nmr endpoint (in fact a JBI
> Component), but this did'nt work with a nmr consumer created with camel. In
> fact, only a NMR Endpoint producing message in his channel can be shared
> between node, because the ClusterEngine use hook through EndpointListener,
> or something like that. Camel NMR Endpoint are just consumer, and in this
> case, the ClusterEngine can't see it.
>
> Of course, i did'nt find any usefull documentation about this part, so i can
> be wrong :-)
>
> In my project, i have replaced all nmr endpoint with activemq. I don't see
> the benefice of using NMR Endpoints in a distributed environment (?).
>
>
> Jeremie
>
> On Thu, Nov 25, 2010 at 9:58 AM, <sergey_zhemzhit...@troika.ru> wrote:
>
>> I've removed the nmr. Exception
>> "org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch
>> exchange. No matching endpoints." still happens.
>>
>> Is NMR camel endpoint shared accross multiple nodes of a cluster? And is
>> declaration of "org.apache.servicemix.common.osgi.EndpointExporter"
>> required?
>>
>> Accorging to the source code of EndpointExporter
>>
>> public Collection<Endpoint> getEndpoints() {
>>    Collection<Endpoint> eps = this.endpoints;
>>    if (eps == null) {
>>        eps = this.applicationContext.getBeansOfType(Endpoint.class
>> ).values();
>>    }
>>    return eps;
>> }
>>
>> it requres org.apache.servicemix.common.Endpoint, so it is not applicable
>> to org.apache.camel.Endpoint created by camel.
>>
>> I'm asking because I have a route that produces events and publishes them
>> to a camel's nmr enpoint on one node of a cluster (separate servicemix
>> instance) and I have a route that listens to events on a canel's nmr
>> enpoint on the second node of the same cluster.
>>
>> I have changed etc/activemq-broker.xml on both nodes of a cluster so that
>> they will know about each other
>>
>> node1:
>>
>> <networkConnectors>
>>    <networkConnector uri="static://(tcp://localhost:62616)"
>> conduitSubscriptions="false"/>
>> </networkConnectors>
>>
>> node2:
>>
>> <networkConnectors>
>>    <networkConnector uri="static://(tcp://localhost:63616)"
>> conduitSubscriptions="false"/>
>> </networkConnectors>
>>
>> How to make sure that the cluster is working and is it possible to share
>> org.apache.camel.Endpoint accross the cluster?
>>
>>
>>
>>
>>
>> Claus Ibsen <claus.ib...@gmail.com>
>> 25.11.2010 11:09
>> Please respond to
>> users@camel.apache.org
>>
>>
>> To
>> users@camel.apache.org
>> cc
>>
>> Subject
>> Re: Is it possible to cluster camel endpoint?
>>
>>
>>
>>
>>
>>
>> Hi
>>
>> Try removing the nmr bean, as it should work out of the box, without
>> the need to specify such a bean.
>>
>> This should be removed:
>>
>> <bean id="nmr"
>> class="org.apache.servicemix.camel.nmr.ServiceMixComponent">
>>       <property name="nmr">
>>           <osgi:reference
>> interface="org.apache.servicemix.nmr.api.NMR"/>
>>       </property>
>>   </bean>
>>
>> On Thu, Nov 25, 2010 at 7:12 AM,  <sergey_zhemzhit...@troika.ru> wrote:
>> > Hi there
>> >
>> > I'm not using JBI. Each route is deployed as OSGi bundle.
>> >
>> >
>> >
>> >
>> >
>> > Claus Ibsen <claus.ib...@gmail.com>
>> > 24.11.2010 20:15
>> > Please respond to
>> > users@camel.apache.org
>> >
>> >
>> > To
>> > users@camel.apache.org
>> > cc
>> >
>> > Subject
>> > Re: Is it possible to cluster camel endpoint?
>> >
>> >
>> >
>> >
>> >
>> >
>> > Hi
>> >
>> > Are you using JBI or not? The last statement was kinda confusing how I
>> > read it.
>> >
>> > If you use JBI I suggest to use jbi to pass messages between
>> applications.
>> >
>> >
>> > On Wed, Nov 24, 2010 at 5:01 PM,  <sergey_zhemzhit...@troika.ru> wrote:
>> >> Well, it seems that my attachments have been dropped.
>> >>
>> >> Here are camel routes:
>> >>
>> >> route for cluster node 1:
>> >>
>> >> <?xml version="1.0" encoding="UTF-8"?>
>> >>
>> >> <beans xmlns="http://www.springframework.org/schema/beans";
>> >>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> >>       xmlns:osgi="http://www.springframework.org/schema/osgi";
>> >>       xsi:schemaLocation="http://www.springframework.org/schema/beans
>> >> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
>> >>                           http://camel.apache.org/schema/spring
>> >> http://camel.apache.org/schema/spring/camel-spring.xsd
>> >>                           http://www.springframework.org/schema/osgi
>> >> http://www.springframework.org/schema/osgi/spring-osgi.xsd";>
>> >>
>> >>    <camelContext id="smx.cluster.publisher" xmlns="
>> >> http://camel.apache.org/schema/spring";>
>> >>        <route id="publishRoute">
>> >>            <from uri="timer://events?fixedRate=true&amp;period=1000"/>
>> >>            <transform>
>> >>                <constant>Hello World!!!</constant>
>> >>            </transform>
>> >>            <multicast>
>> >>                <to uri="log://smx.cluster.publisher?level=INFO"/>
>> >>                <to uri="nmr://smx.cluster"/>
>> >>            </multicast>
>> >>        </route>
>> >>    </camelContext>
>> >>
>> >>    <bean id="nmr"
>> >> class="org.apache.servicemix.camel.nmr.ServiceMixComponent">
>> >>        <property name="nmr">
>> >>            <osgi:reference
>> >> interface="org.apache.servicemix.nmr.api.NMR"/>
>> >>        </property>
>> >>    </bean>
>> >>
>> >> </beans>
>> >>
>> >> route for cluster node 2:
>> >>
>> >> <?xml version="1.0" encoding="UTF-8"?>
>> >>
>> >> <beans xmlns="http://www.springframework.org/schema/beans";
>> >>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> >>       xmlns:osgi="http://www.springframework.org/schema/osgi";
>> >>       xsi:schemaLocation="http://www.springframework.org/schema/beans
>> >> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
>> >>                           http://camel.apache.org/schema/spring
>> >> http://camel.apache.org/schema/spring/camel-spring.xsd
>> >>                           http://www.springframework.org/schema/osgi
>> >> http://www.springframework.org/schema/osgi/spring-osgi.xsd";>
>> >>
>> >>    <camelContext id="smx.cluster.subscriber" xmlns="
>> >> http://camel.apache.org/schema/spring";>
>> >>        <route id="receiveRoute">
>> >>            <from uri="nmr://smx.cluster" />
>> >>            <to uri="log://smx.cluster.subscriber?level=INFO"/>
>> >>        </route>
>> >>    </camelContext>
>> >>
>> >>    <bean id="nmr"
>> >> class="org.apache.servicemix.camel.nmr.ServiceMixComponent">
>> >>        <property name="nmr">
>> >>            <osgi:reference
>> >> interface="org.apache.servicemix.nmr.api.NMR"/>
>> >>        </property>
>> >>    </bean>
>> >>
>> >>    <bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
>> >>
>> >> </beans>
>> >>
>> >> It is important to note that routes are not deployed are service units
>> > for
>> >> servicemix-camel jbi component.
>> >>
>> >> Regards, Sergey
>> >>
>> >>
>> >>
>> >>
>> >> sergey_zhemzhit...@troika.ru
>> >> 24.11.2010 18:55
>> >> Please respond to
>> >> users@camel.apache.org
>> >>
>> >>
>> >> To
>> >> users@camel.apache.org
>> >> cc
>> >>
>> >> Subject
>> >> Re: Is it possible to cluster camel endpoint?
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> Hi
>> >>
>> >> I have attached sample application (SMX-CLUSTER.zip) and configuration
>> > of
>> >> activemq in ServiceMix (SMX-CONFIG.zip) for clustering:
>> >>
>> >> To install the application please execute mvn install from command
>> line.
>> >> It is necessary to have two instances of ServiceMix for the cluster
>> >> (configurations for activemq are in SMX-CONFIG.zip).
>> >>
>> >> Start both ServiceMix nodes and execute the following command in the
>> >> console of the first one:
>> >>
>> >> features:addUrl
>> >> mvn:org.sample.smx.cluster/smx.cluster.features/1.0.0-SNAPSHOT/xml
>> >> features:refreshUrl
>> >> features:install org.sample.smx.subscriber
>> >>
>> >> Execute the following commands in the console of the second node:
>> >>
>> >> features:addUrl
>> >> mvn:org.sample.smx.cluster/smx.cluster.features/1.0.0-SNAPSHOT/xml
>> >> features:refreshUrl
>> >> features:install org.sample.smx.publisher
>> >>
>> >> I have expected that messages which were sent from the first node would
>> >> reach the second node.
>> >>
>> >> I'm using:
>> >>
>> >> Fuse ESB: 4.3.0-fuse-01-00
>> >> JDK: 1.6.0_21-b07 (Sun)
>> >> OS: Win XP Pro SP3
>> >>
>> >>
>> >> Regards,
>> >> Sergey
>> >>
>> >>
>> >>
>> >>
>> >> Claus Ibsen <claus.ib...@gmail.com>
>> >> 24.11.2010 14:52
>> >> Please respond to
>> >> users@camel.apache.org
>> >>
>> >>
>> >> To
>> >> users@camel.apache.org
>> >> cc
>> >>
>> >> Subject
>> >> Re: Is it possible to cluster camel endpoint?
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> Hi
>> >>
>> >> Can you post more details
>> >>
>> >> FUSE ESB version used
>> >> JDK used
>> >> OS used
>> >> And the Camel route you are using.
>> >>
>> >> And you can try using the latest release: v4.3.0-fuse-02-00
>> >>
>> >>
>> >> On Wed, Nov 24, 2010 at 10:06 AM,  <sergey_zhemzhit...@troika.ru>
>> wrote:
>> >>> Hello all.
>> >>>
>> >>> I'm trying to use camel on the ServiceMix 4 cluster.
>> >>>
>> >>> According to http://camel.apache.org/clustering-and-loadbalancing.html
>> >> we
>> >>> can use NMR endpoint but there isn't an example there.
>> >>> I have tried to connect from one node of a cluster to another using
>> >>> camel's nmr component, but without success. An exception has occured.
>> >>>
>> >>> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch
>> >>> exchange. No matching endpoints.
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)[58:org.apache.servicemix.nmr.core:1.3.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)[58:org.apache.servicemix.nmr.core:1.3.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)[58:org.apache.servicemix.nmr.core:1.3.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.servicemix.camel.nmr.ServiceMixProducer.process(ServiceMixProducer.java:86)[191:org.apache.servicemix.camel.component:4.3.0.fuse-01-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:62)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:104)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:272)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:98)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:62)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>        at
>> >>>
>> >>
>> >
>>
>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[92:org.apache.camel.camel-core:2.4.0.fuse-00-00]
>> >>>
>> >>> Is it possible to use clustered endpoints in camel?
>> >>>
>> >>>
>> >>> Best Regards,
>> >>> Sergey
>> >>
>> >>
>> >>
>> >> --
>> >> Claus Ibsen
>> >> -----------------
>> >> FuseSource
>> >> Email: cib...@fusesource.com
>> >> Web: http://fusesource.com
>> >> Twitter: davsclaus
>> >> Blog: http://davsclaus.blogspot.com/
>> >> Author of Camel in Action: http://www.manning.com/ibsen/
>> >>
>> >>
>> >>
>> >
>> >
>> >
>> > --
>> > Claus Ibsen
>> > -----------------
>> > FuseSource
>> > Email: cib...@fusesource.com
>> > Web: http://fusesource.com
>> > Twitter: davsclaus
>> > Blog: http://davsclaus.blogspot.com/
>> > Author of Camel in Action: http://www.manning.com/ibsen/
>> >
>> >
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> FuseSource
>> Email: cib...@fusesource.com
>> Web: http://fusesource.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.blogspot.com/
>> Author of Camel in Action: http://www.manning.com/ibsen/
>>
>>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to