Well, I figured out the one issue with the pending messages.  Guess I was
confused about the difference between a consumer (using "from") and a
producer (using "to").

Now I just have to figure out why the camel jms producer removes the message
body when sending the message to the queue.  At least, that's what I see in
the ActiveMQ console.  Any ideas?



jfaath wrote:
> 
> Sure, here is the route:
> 
>         from("servlet:///data-in").convertBodyTo(String.class)
>         .to("validator:schema-file.xsd")
>         .inOnly("jms:queue:inbound")
>         .choice()
>         .when().xpath("/a:data/a:dataLog1", ns)
>               .unmarshal(jaxbDf)
>               .beanRef("dataLog1Processor", "process")
>               .marshal(jaxbDf)
>               .to("jms:queue:processed")
>         .when().xpath("/a:data/a:dataLog2", ns)
>               .unmarshal(jaxbDf)
>               .beanRef("dataLog2Processor", "process")
>               .marshal(jaxbDf)
>               .to("jms:queue:" + processedQueue)
>         .otherwise().to("mock:invalid");
>         
>        from("jms:queue:processed")
>        .choice()
>        .when(header("errorsFound").isEqualTo(true))
>                       .to("jms:queue:errors")
>        .otherwise().to("mock:finished");
> 
> 
> 
> 
> willem.jiang wrote:
>> 
>> Hi,
>> 
>> Can we have a look at your camel route?
>> Which version of camel are your using?
>> 
>> You issue relates to the ErrorHandler[1], you may need to go through the 
>>   wiki document for it.
>> 
>> [1]http://camel.apache.org/error-handler.html
>> 
>> Willem
>> 
>> jfaath wrote:
>>> I have a camel application that's using a remote ActiveMQ broker
>>> instance. 
>>> Messages come in to the application via HTTP and are sent to a "inbound"
>>> queue using "inOnly".  Messages are then processed and sent to a
>>> "processed"
>>> queue.  Finally, if an error occurred during processing, those messages
>>> are
>>> sent to an "errors" queue.
>>> 
>>> So, ideally at the end, there should only be messages either in the
>>> "processed" queue or the "errors" queue.  Actually, I don't really care
>>> if
>>> they end up in the "processed" queue, but I definitely need to see the
>>> messages in the "errors" queue.
>>> 
>>> However, what ends up happening is, full messages stay in the "inbound"
>>> queue under "pending messages", messages are processed as expected but
>>> nothing ends up in the "processed" queue and while messages resulting in
>>> errors do end up in the "errors" queue, the message body is gone.
>>> 
>>> I'm using the ActiveMQ web console to inspect the queues.  The
>>> "processed"
>>> queue is the only one that has a consumer attached to it (which explains
>>> why
>>> it ends up with no messages).  Is this expected behavior? How can I have
>>> control over what is happening with messages in these queues using camel
>>> routes?  Really what I most need fixed is to not lose the body of the
>>> message in the error queue.
>>> 
>>> -JF
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Remote-broker-message-behavior-tp28287920p28346703.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.

Reply via email to