[
https://issues.apache.org/activemq/browse/CAMEL-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Krasser updated CAMEL-1037:
----------------------------------
Attachment: camel-1.x.patch
Attached is a patch that fixes this issue and also issue CAMEL-393. What has
been done in this patch:
* I removed the polling consumer from the BatchProcessor because it
** competes with other threads e.g. those that consume messages from a JMS
queue (already described in CAMEL-642 and CAMEL-1034).
** it consumes messages directly from the starting-endpoint of the current
route (obtained via {{routeContext.getEndpoint()}}). This caused CAMEL-393.
* BatchProcessor now queues up exchanges which are then sent by a separate
thread. The separate thread is needed to deal with timeouts. The old
BatchProcessor implementation also stored exchanges in memory so there is at
least no decrease in QoS with this patch. Reliable batch processing (and
stream-resequencing) will be addressed with issue CAMEL-949 (for which I don't
have a patch yet).
* CAMEL-393 was reported for the aggregator but the same problems arise for the
batch resequencer and stream resequencer. All three can now be used in route
definitions as requested in CAMEL-393. (This required to remove the polling
consumer from the StreamResequencer too).
CAMEL-1037 came up because because in Camel 1.4 the
{{org.apache.camel.Processor}} interface was introduced for the BatchProcessor
with an empty {{process(Exchange)}} implementation. The JMS consumer threads
competed with the polling thread of the batch processor where all exchanges
delivered via the JMS consumer threads have been lost (i.e.
{{process(Exchange)}} ignored those exchanges).
So far I created this patch for the Camel-1.x branch because I'm not sure if
you (comitters, others) already thought about a different solution to this
problem for Camel 2.0. If you don't have any objections to this patch please
tell me and I'll create one for the current trunk.
> Messages in Resequencer between 2 JMS queues get stuck
> ------------------------------------------------------
>
> Key: CAMEL-1037
> URL: https://issues.apache.org/activemq/browse/CAMEL-1037
> Project: Apache Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 1.5.0
> Reporter: Jonathan Anstey
> Attachments: camel-1.x.patch
>
>
> Martin describes the issue as follows in CAMEL-1034:
> "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."
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.