Camel
  1. Camel
  2. CAMEL-667

Transactional Client - Uses DeadLetterChannel to much

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.0
    • Fix Version/s: 1.4.0
    • Component/s: camel-core, camel-spring
    • Labels:
      None

      Description

      The new changes to the transactional client EIP pattern to let Camel support spring based TX does a trick to the DLC to set its max redeliveries to 1 if in transacted mode.
      This causes the normal DLC code to be executed and it will report that in case of failures that its being handled by its error handler, this is normally to move it to an error queue.
      This of course doesn't happen. The DLC should be short cutted to let the underlying system handling the redelivery without the DLC infecting it currently.

        Activity

        Hide
        Claus Ibsen added a comment -

        Maybe a better approach than my current fix is to not add the DLC to the route node in questions that are under transactional control somehow with the policy element?

        Show
        Claus Ibsen added a comment - Maybe a better approach than my current fix is to not add the DLC to the route node in questions that are under transactional control somehow with the policy element?
        Hide
        james strachan added a comment -

        BTW I've just added a TransactionalErrorHandlerBuilder...

        https://issues.apache.org/activemq/browse/CAMEL-663

        that never retries - but just rollsback the transaction which might be better for transacational routes.

        You can now use XML to specify this on the <camelContext> <route> or a <pipeline> now
        https://issues.apache.org/activemq/browse/CAMEL-662
        https://issues.apache.org/activemq/browse/CAMEL-661

        Show
        james strachan added a comment - BTW I've just added a TransactionalErrorHandlerBuilder... https://issues.apache.org/activemq/browse/CAMEL-663 that never retries - but just rollsback the transaction which might be better for transacational routes. You can now use XML to specify this on the <camelContext> <route> or a <pipeline> now https://issues.apache.org/activemq/browse/CAMEL-662 https://issues.apache.org/activemq/browse/CAMEL-661
        Hide
        Claus Ibsen added a comment -

        Ah maybe we should try switching whatever error handler the node has currently set (ie DLC as default) to the transaction one instead?

        Show
        Claus Ibsen added a comment - Ah maybe we should try switching whatever error handler the node has currently set (ie DLC as default) to the transaction one instead?
        Hide
        Claus Ibsen added a comment -

        The new TransactionErrorHandlerBuilder is in camel-spring and the others is in camel-core.

        Show
        Claus Ibsen added a comment - The new TransactionErrorHandlerBuilder is in camel-spring and the others is in camel-core.
        Hide
        james strachan added a comment -

        Yeah - its in camel-spring as it depends on spring. We should have a ponder for 1.5 or 2.0 as to whether Spring transaction based error handler - or a retry/deadletter is the best default

        Show
        james strachan added a comment - Yeah - its in camel-spring as it depends on spring. We should have a ponder for 1.5 or 2.0 as to whether Spring transaction based error handler - or a retry/deadletter is the best default
        Hide
        Claus Ibsen added a comment -

        Fixed with CAMEL-663 and that end-users should switch error handler to the transaction one instead of the default.

        Later as James write we can change the behavior in Camel 1.5 or 2.0.
        Also the wiki documentation for the transactional client has been updated with this new error handler.

        Show
        Claus Ibsen added a comment - Fixed with CAMEL-663 and that end-users should switch error handler to the transaction one instead of the default. Later as James write we can change the behavior in Camel 1.5 or 2.0. Also the wiki documentation for the transactional client has been updated with this new error handler.

          People

          • Assignee:
            Claus Ibsen
            Reporter:
            Claus Ibsen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development