The message is in the proper queue, I just can't see the XML when viewing through the ActiveMQ console.
I'm hoping to convince the project manager to view the message by a different means making this issue moot. Thanks for the reply. willem.jiang wrote: > > jfaath wrote: >> 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? >> >> > Do you mean you can't find any message from the errors queue? or there > queue? > > If you are using Camel 2.x, it may relate to StreamCache issue[1] > > [1]http://camel.apache.org/stream-caching.html > > > Willem >> >> 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-tp28287920p28365128.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.