I apologize if this is a simple question - but I just need to be sure!

I am developing this route that handles multiple message types and uses a
"when()" predicate to send the message to the appropriate processor based on
a header value.  In the "Otherwise" case I want to send it to an unknown
format processor to log the error but I don't want the exchange to continue
from there (as there is further processing that needs to only occur on a
valid message).

Here is the route:

from("direct:incoming")
            .choice()
              .when(header("status").isEqualTo("1"))
                .process(status1processor)
              .when(header("status").isEqualTo("2))
                .process(status2processor)
              .otherwise().process(unknownstatusprocessor)
            .end()
            .process(someOtherProcessor)
            .to("mock:outgoing);

Now - I thought of just putting:

.otherwise().process(unknownstatusprocessor).to("mock:garbage")

The main concern I have is that I want this "garbage" endpoint to be
something we can use in our live environment.  I am not sure if "mock" is
wise.  I thought of "direct:garbage" - but as I understand it - that is an
"in memory queue" essentially.  And I don't want it to ever fill up if
exchanges just sit there unprocessed.

I just want to make sure that whatever endpoint I use - it truly is a
"garbage can".  We just want to log the information and get rid of the
message.  Am I over thinking the behavior of "mock" and it will just be the
black hole I am looking for?

Thanks for the help!
-- 
View this message in context: 
http://www.nabble.com/Best-way-to-throw-away-an-exchange-in-a-route-in-an-otherwise%28%29-case-tp25933807p25933807.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to