Saving Dead letter messages in file system/database

53 Views Asked by At

I am new in Camel world. Basically i am looking a way to store camel dead letter message in file/RDBMS system.

<camelContext trace="true" id="mybeanId" xmlns="http://camel.apache.org/schema/spring" autoStartup="true" errorHandlerRef="myErrorHandler">

        <errorHandler id="myErrorHandler" type="DeadLetterChannel" deadLetterUri="file:errors" >              
            <redeliveryPolicy maximumRedeliveries="-1" redeliveryDelay="5000"/>
        </errorHandler>
<!-- route details -->
</camelContext>

with the configuration i can see when message received from MQ and it send to route 1 for example and somehow route1 is failed to process.

in that case i can see log: JmsConsumer[Uploader]) [-] [] Failed delivery for (MessageId: ID:on ExchangeId: ). On delivery attempt: 0 caught: cause That means my myErrorHandler is working.

Now when i restarted my JVM i can see this unprocessed message is lost. So looking for way where i can store this message file system or database so when we restarted JVM and consumer is up we will able to process this message.

I am referring : https://camel.apache.org/components/4.0.x/eips/dead-letter-channel.html

UPDATE: Also tried with :

<errorHandler id="myErrorHandler" type="DeadLetterChannel" deadLetterUri="file:C:\Users\Temp?fileName=MyFile.txt" useOriginalBody ="true">              
            <redeliveryPolicy maximumRedeliveries="-1" redeliveryDelay="5000"/>
        </errorHandler>

But no luck.

Thanks in Advance.

0

There are 0 best solutions below