[ 
https://issues.apache.org/jira/browse/CAMEL-4650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13147551#comment-13147551
 ] 

Tarjei Huse commented on CAMEL-4650:
------------------------------------

Hi Babak,

1. Yes both routes are in the same context.

2. Yes the point is to consume from the same seda endpoint. Think of this 
endpoint as a buffer between processes that take differing amounts of time and 
should not happen sequentially. 

3. I got an errorhandler for shorter errors like this:

.onException(java.net.ConnectException.class, SolrServerException.class, 
SolrException.class)
        .log(LoggingLevel.ERROR,routeName+ ":Connection down")
                                .maximumRedeliveries(4)
                                .backOffMultiplier(1)
                                .redeliveryDelay(redeliveryDelay)
                                
.to("log:SolrRouteError?showAll=true&showStackTrace=true&showHeaders=true&showException=true")
                                .to(getSolrFailuresQueue())
                                .handled(true)
                                .end()

The problem is that on some errors the time it takes for a request can be quite 
long so the seda queue builds up.

Maybe I should shut down the consuming route before starting the drainer - 
would that help?

                
> NPE when using SEDA route and attaching an extra consumer
> ---------------------------------------------------------
>
>                 Key: CAMEL-4650
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4650
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.8.2
>         Environment: Java 6, Camel 2.8.2, Centos 4.
>            Reporter: Tarjei Huse
>
> I'm trying to construct a system for moving some seda queues over to
> ActiveMQ during system shutdown. What I did was create a Route that
> connects to some of my seda queues and then drains the queue to activemq.
> Basicly I got two routes, the drainer:
> from("seda:" + sedaId + "?size=1000")
>                     .routeId(routeName +
> sedaIs).noAutoStartup().to(activeMQFailuresQueue);
> And the main route:
> from("seda:" + sedaId + "?size=1000")
>                     .routeId(routeName + sedaIs).to(SomeProcessor);
> Now, sometimes the main route stalls for various reasons I need to
> restart the jvm process it is running in, so I start the first route.
> But when trying this in production, I got:
>  java.lang.NullPointerException
>     at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
>     at
> org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:210)
>     at
> org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:155)
>     at
> org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:129)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>     at java.lang.Thread.run(Thread.java:619)
> Bvahdat added a comment:
> just a very tiny pointer:
> Looking at the source it seems that  the
> SedaEndpoint.getConsumerMulticastProcessor() method returns 'null' causing
> the NPE, as the condition:
> multicastStarted == false || consumerMulticastProcessor == null
> is true.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to