I am writing a Camel application (to run in ServiceMix v4.4.2) that needs to be able to handle exceptions (using a dead letter queue to store the messages for retry later) and be able to start where it left off if the hardware dies. I think I need a mix of transactions and error handlers but am unsure how to start.
Any advice or pointers to relevant tutorials would be great.
You can take a look at my tutorial at: http://www.liquid-reality.de/x/JgBz
It is not exactly what you are looking for but similar. It shows how to create a transactional route and how to setup jms for it. The difference is that the tutorial route starts with a jpa component. So I will exaplain how to do it with jms.
For jms with a dead letter queue you would do an onException clause that sends to the dead lettter queue. This covers the case were camel is able to handle the problem. In case of a hardware failure the jms transaction will be rolled back and the message will stay on the original queue and be retried when the route comes up again. Ideally you would also set up your jms provider to send to the dead letter queue after n retries. This would catch the case where for some reason the message is always rolled back.