Well, if I don't misunderstand the situation, you could just use try/catch
inside "createSimpleProduct" method to skip the bad items.

Regards
Stephan


On Thu, Dec 5, 2013 at 12:33 PM, [email protected] <
[email protected]> wrote:

> Hi All,
>
> I've got a question about error handling. Here is my scenario...
>
> I have a route which calls a bean..
>
> from(...JPA...)
> .errorHandler(deadLetterChannel("log:dead")
> .maximumRedeliveries(5)
> .retryAttemptedLogLevel(LoggingLevel.ERROR))
> .to("bean:serviceBean?method=login")
> .to("bean:serviceBean?method=createSimpleProduct")
>
>
> Where my service bean looks like this...
>
>         public void login(Exchange exchange) {
>                 SharedModel model = new SharedModel();
>
> exchange.getOut().setHeaders(exchange.getIn().getHeaders());
>                 exchange.getOut().setBody(model);
>         }
>
>         public void createSimpleProduct(Exchange exchange) {
>                 ImportPayloadEntity importPayloadEntity =
>
> (ImportPayloadEntity)exchange.getIn().getHeader(CamelConstants.HEADER_KEY_IMPORT_PAYLOAD);
>                 Collection<ItemEntity> itemEntities =
> importPayloadEntity.getItems();
>                 for (ItemEntity item : itemEntities) {
>
>                       SharedModel model = ((SharedModel)
> (exchange.getIn().getBody()));
>                       ....
>                       call soap call for each item in loop and use
> attributes from SharedModel in calls
>                 }
> }
>
>
> So what happens currently is that when there is an error in create simple
> product, because the model is being used as the message, the route will
> fail
> (after unsuccessful retries) when it comes across the first bad item.
>
> I have been wondering how could I change this so that it sidelines only the
> bad item and keep going through the rest?
>
> I had some tries at changing my route to use a Splitter to split my route
> into individual item messages (which might work nicely) but then I realized
> that I would lose my sharedModel as the message body which i need that to
> make the service calls.
>
> What is the best design pattern for this situation?
>
> much appreciated
>
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/error-handling-design-pattern-advice-tp5744364.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Reply via email to