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.