Sorry - I did not get the full answer... I think I am not asking the question
correctly. I have figured out the routing - that was pretty easy. I have a
route similar to this:
from("jms:delivery-queue")
.recipientList().header(Constants.ROUTE_HEADER);
Now based on the ROUTE_HEADER, some endpoint may handle sending of this
message. Now after the message is send to the other system (possibilities
are SFTP, FTP, HTTP/HTTPS), I need to get the control after the
transmission, check the status of exchange and update the database. So for
that do I have to add a DelegatingProcessor before the recipientList?
Something like this? Is this what need to be done?
DelegatingProcessor myProcessor = new MyDelegatingProcessor();
from("jms:delivery-queue").intercept(myProcessor)
.recipientList().header(Constants.ROUTE_HEADER);
in MyDelegatingProcessor.process()
public void process(Exchange exchange) {
processNext();
if (exchange.isFailed()) {
// update the DB as failed
} else {
// update the DB as successful
}
}
Am I making sense?
Hari Gangadharan
Claus Ibsen wrote:
>
> Hi
>
> Answer on some of your questions.
>
> Exchange has methods: isFailed, getException
> http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/Exchange.html
>
>
> I guess you can also configure your error handler to multicast the failed
> message to 2 destinations such as:
>
> errorHandler(deadLetterHandler().maximumRedeliveries(2)).multicast().to("seda:dlc",
> "xmpp:xxx");
>
> Then you get the dead message in a queue and also a notification. If you
> want "redeliver" of the "xmpp:xxx" then this can be split into 2 routes
> using a seda queue in the middle.
>
> errorHandler(deadLetterHandler().maximumRedeliveries(2)).multicast().to("seda:dlc",
> "seda:xxx");
>
> from("seda:xxx").errorHandler(deadLetterHandler().maximumRedeliveries(5)).to("xmpp:xxx");
>
> The combinations is nearly endless, a bit scary ;)
>
> I think we might have a few DSL for detecting if a message is failed, but
> I haven't used them to much. But you can always check from a processor
> with java code, or use bean or some kind of EL language.
>
> Well try a bit more and maybe post a sample of how far you got. Then we
> can look at it again later.
>
> You can also intercept specific exceptions and route them to your xmpp as
> well
>
> Here is some links to check:
> http://activemq.apache.org/camel/error-handler.html
> http://activemq.apache.org/camel/exception-clause.html
> http://activemq.apache.org/camel/dead-letter-channel.html
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
>
--
View this message in context:
http://www.nabble.com/Some-questions-tp19564827s22882p19614697.html
Sent from the Camel - Users mailing list archive at Nabble.com.