Hi,

What is the recommended way to handle the following scenario.

I intend to embed Camel in a client (a standalone Java process). The
client receives messages from a queue on an ActiveMQ 5.8.0 broker. The
client's processor is expected to save each message to a database
(amongst other things).

I need for my client's behavior to satisfy the following criteria:

1. If the database goes offline the client's error handling logic
should retry the database save indefinitely.
2. The client should not send an ACK to the broker for a given message
until it is saved in the database.
3. The client should not process subsequent messages until the
processing of the current one is successful.
4. The implementation of the client's retry logic should not require
the involvement of the broker from which the message came.

Questions:

1. What is the correct pattern for implementing dead letter handling
in the client (for handling database retries) so that all of the above
criteria can be satisfied?

2. What gotchas should I be aware of, if any?

3. It is my understanding that Camel's dead letter handling is
separate and distinct from that of ActiveMQ's even when the Camel
context is running inside a broker. Is that correct? (Seems obvious
but I thought I'd check.)

4. Is the approach I am proposing to take flawed to the extent that
some other approach must be taken?

Thanks,
Paul

Reply via email to