Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-10685

TransactionErrorHandler and TransactionPolicy for Camel CDI / JavaEE

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.19.0
    • camel-cdi
    • None
    • Unknown

    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

          Activity

            People

              antonin.stefanutti Antonin Stefanutti
              RasPelikan RasPelikan
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: