I'll give this a shot.  Can you give me a quick example or point me to a
sample that does something similar (ex. setting a header in code, performing
conditional logic in a route based on a header).

-JF


Allen Lau-2 wrote:
> 
> I could be wrong here, but you could easily stick the "error" object as
> part
> of the message header.   As long as your components
> understand that header, you can easily retrieve it and only send that
> portion to an error queue.
> 
> The default message headers in Camel is defined as
> 
> Map<String, Object> headers;
> 
> so basically you can stuff whatever you want into it.
> 
> 
> On Tue, Mar 23, 2010 at 4:02 PM, jfaath <jfa...@apache.org> wrote:
> 
>>
>> I'm not sure that would work.  As I stated in my original post, I don't
>> want
>> to send the entire message to the error queue, just the portion that was
>> invalid.  So, if my original message has, say, 11 readings, and 3 of them
>> are bad, I only want to send the 3 bad ones to the error queue.  During
>> processing, I stick the bad readings into an "error object".  It's the
>> contents of this object (that I can easily marshal to XML) that I want to
>> send to the queue.
>>
>> FYI, here is a simplified version of my route:
>>
>>
>> from("jetty:http://0.0.0.0:8282/process";).convertBodyTo(String.class)
>>        .inOnly("jms:queue:data.inbound")
>>        .unmarshal(jaxbDf)
>>        .beanRef("dataProcessor", "process")
>>
>>
>> Allen Lau-2 wrote:
>> >
>> > How about just setting a header when you are done processing and there
>> is
>> > an
>> > error?
>> >
>> > Then in your route, just send any message to the error queue when the
>> > header
>> > is detected.
>> >
>> > On Tue, Mar 23, 2010 at 11:57 AM, jfaath <jfa...@apache.org> wrote:
>> >
>> >>
>> >> I'm looking for some advice on how to deal with errors during a large
>> >> processing task.  It seems like it should be simple but I'm having
>> >> trouble
>> >> figuring out what to do.
>> >>
>> >> I have an HTTP endpoint that receives XML messages then sticks them in
>> a
>> >> processing queue.  From the queue, they get unmarshalled into JAXB
>> >> objects
>> >> and then processed by a Java class.  Now, the messages consist or a
>> large
>> >> number of readings.  Some may be good, some may be bad.  The good ones
>> >> get
>> >> processed, but the bad ones are stuffed into a JAXB object.
>> >>
>> >> When the processing is done, I'd like to throw this object on an error
>> >> queue
>> >> (or, marshal then throw on the queue).  But I can't figure out how to
>> do
>> >> this the best way.  The processing class should exit gracefully so I
>> >> don't
>> >> want to throw a final exception.
>> >>
>> >> What might be the best way to do this?  Can I add the error object to
>> a
>> >> queue programmatically within the processor?  Can the processor return
>> >> the
>> >> error object so I can throw it on the queue via the route?  Is there a
>> >> nice
>> >> and easy way to do this?
>> >>
>> >> Thanks,
>> >>
>> >> JF
>> >> --
>> >> View this message in context:
>> >>
>> http://old.nabble.com/error-handling-advice-with-queues-tp28005566p28005566.html
>> >> Sent from the Camel - Users mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://old.nabble.com/error-handling-advice-with-queues-tp28005566p28008395.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: 
http://old.nabble.com/error-handling-advice-with-queues-tp28005566p28016879.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to