Description
The "transacted" configuration requires a Spring environment. We use JavaEE and we needed to use "transacted". We ported the Spring implementation of the TransactionErrorHandler to JavaEE.
There is only one major difference: Spring's TransactionErrorHandler derives from org.apache.camel.processor.RedeliveryErrorHandler which brings the behavior that redelivery is done within the transaction. In our implementation there is a RedeliveryErrorHandler which uses the TransactionErrorHandler to force a rollback and create a new transaction for each redelivery.
Example usage:
errorHandler(transactionErrorHandler() // .setTransactionPolicy("PROPAGATION_SUPPORTS") // .maximumRedeliveries(5) // .maximumRedeliveryDelay(5000) // .collisionAvoidancePercent(10) // .backOffMultiplier(1.5)); from("direct:sample") // .transacted("PROPAGATION_REQUIRES_NEW") .to("bean:sampleBean");
Attachments
Issue Links
- links to