[ 
https://issues.apache.org/activemq/browse/CAMEL-1034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Krasser updated CAMEL-1034:
----------------------------------

    Attachment: camel-core.patch

Peter,

thanks for your detailed report. Attached is a patch that fixes the issue with 
the StreamResequencer. 

The issue with the regular resequencer (the one that extends the 
BatchProcessor) remains because the process(Exchange) method is empty. In 
addition to the BatchProcessor's polling consumer, an additional JmsConsumer is 
created by the JMS endpoint that competes with the polling consumer. The 
JmsConsumer then calls the empty process(Exchange) method and the exchange is 
lost. I had no time so far to fix the issues for the BatchProcessor. Hope the 
fix for the StreamResequencer helps you so far.

> Messages in StreamResequencer between 2 ActiveMQ queues seem to be stuck
> ------------------------------------------------------------------------
>
>                 Key: CAMEL-1034
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1034
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 1.4.0
>         Environment: Windows XP SP3, Sun JDK 1.5.0_11, FUSE Mediation Router 
> 1.4.5, ActiveMQ 5.1.0.1
>            Reporter: Peter MacKinnon
>         Attachments: camel-core.patch, stream-resequencer-eclipse-test.zip, 
> stream-resequencer-trace.txt
>
>
> Perhaps some subtle configuration issue, but a Camel stream resequencer that 
> is a route between 2 ActiveMQ queues fails to deliver all ordered messages. 
> In fact, using the defaults for a StreamResequencer only 1 out of 100 
> messages are delivered. However, all 100 messages have been removed from the 
> Producer queue by the resequencer and are not moved to the consumer queue 
> either (even unordered). 
> Relevant points:
> - Broker is run external to Camel route (non-embedded, no VM transport)
> - Producer is a Camel ProducerTemplate
> - Consumer is a Camel route that listens on another delivery queue and 
> delivers message to a simple stdout Processor
> - Resequencer uses stream defaults (100, 1000ms)
> - Trace warns of some Converter override (see attached trace) and throws a 
> breadcrumb error
> - Resequencer fails delivery whether using body (long) or seqnum header (long)
> - all JMS components are configured for AutoAcks

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to