Class TransactionErrorHandler

  • All Implemented Interfaces:
    AutoCloseable, org.apache.camel.AsyncProcessor, org.apache.camel.Navigate<org.apache.camel.Processor>, org.apache.camel.Processor, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.ErrorHandler, org.apache.camel.spi.ErrorHandlerRedeliveryCustomizer, org.apache.camel.spi.ShutdownPrepared, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

    public class TransactionErrorHandler
    extends org.apache.camel.processor.errorhandler.RedeliveryErrorHandler
    The Transactional Client EIP pattern.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.camel.processor.errorhandler.RedeliveryErrorHandler

        org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.RedeliveryTask, org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.SimpleTask
    • Field Summary

      • Fields inherited from class org.apache.camel.processor.errorhandler.RedeliveryErrorHandler

        awaitManager, camelContext, customExchangeFormatter, deadLetter, deadLetterHandleNewException, deadLetterUri, exchangeFormatter, executorService, logger, onExceptionProcessor, onPrepareProcessor, output, outputAsync, preparingShutdown, reactiveExecutor, redeliveryEnabled, redeliveryPolicy, redeliveryProcessor, redeliverySleepCounter, retryWhilePolicy, shutdownStrategy, simpleTask, taskFactory, useOriginalBodyPolicy, useOriginalMessagePolicy
      • Fields inherited from class org.apache.camel.processor.errorhandler.ErrorHandlerSupport

        DEFAULT_EXCHANGE_FORMATTER, exceptionPolicies, exceptionPolicy
      • Fields inherited from class org.apache.camel.support.ChildServiceSupport

        childServices
      • Fields inherited from class org.apache.camel.support.service.BaseService

        BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
    • Constructor Summary

      Constructors 
      Constructor Description
      TransactionErrorHandler​(org.apache.camel.CamelContext camelContext, org.apache.camel.Processor output, org.apache.camel.spi.CamelLogger logger, org.apache.camel.Processor redeliveryProcessor, org.apache.camel.processor.errorhandler.RedeliveryPolicy redeliveryPolicy, org.springframework.transaction.support.TransactionTemplate transactionTemplate, org.apache.camel.Predicate retryWhile, ScheduledExecutorService executorService, org.apache.camel.LoggingLevel rollbackLoggingLevel, org.apache.camel.Processor onExceptionOccurredProcessor)
      Creates the transaction error handler.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.apache.camel.spi.ErrorHandler clone​(org.apache.camel.Processor output)  
      protected void doInTransactionTemplate​(org.apache.camel.Exchange exchange)  
      void process​(org.apache.camel.Exchange exchange)  
      boolean process​(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)  
      protected void processByErrorHandler​(org.apache.camel.Exchange exchange)
      Processes the Exchange using the error handler.
      protected void processInTransaction​(org.apache.camel.Exchange exchange)  
      boolean supportTransacted()  
      String toString()  
      • Methods inherited from class org.apache.camel.processor.errorhandler.RedeliveryErrorHandler

        changeOutput, defensiveCopyExchangeIfNeeded, determineIfRedeliveryIsEnabled, determineRedeliveryDelay, doShutdown, doStart, doStop, getDeadLetter, getDeadLetterUri, getDefaultHandledPredicate, getLogger, getOutput, getRedeliveryPolicy, hasNext, isDeadLetterHandleNewException, isDone, isRunAllowedOnPreparingShutdown, isUseOriginalBodyPolicy, isUseOriginalMessagePolicy, next, prepareShutdown, processAsync
      • Methods inherited from class org.apache.camel.processor.errorhandler.ErrorHandlerSupport

        addErrorHandler, addExceptionPolicy, getExceptionPolicy, isDeadLetterChannel
      • Methods inherited from class org.apache.camel.support.ChildServiceSupport

        addChildService, removeChildService, shutdown, start, stop
      • Methods inherited from class org.apache.camel.support.service.BaseService

        build, doBuild, doFail, doInit, doLifecycleChange, doResume, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, suspend
      • Methods inherited from interface org.apache.camel.Service

        build, close, init
      • Methods inherited from interface org.apache.camel.StatefulService

        getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
      • Methods inherited from interface org.apache.camel.SuspendableService

        isSuspended, resume, suspend
    • Constructor Detail

      • TransactionErrorHandler

        public TransactionErrorHandler​(org.apache.camel.CamelContext camelContext,
                                       org.apache.camel.Processor output,
                                       org.apache.camel.spi.CamelLogger logger,
                                       org.apache.camel.Processor redeliveryProcessor,
                                       org.apache.camel.processor.errorhandler.RedeliveryPolicy redeliveryPolicy,
                                       org.springframework.transaction.support.TransactionTemplate transactionTemplate,
                                       org.apache.camel.Predicate retryWhile,
                                       ScheduledExecutorService executorService,
                                       org.apache.camel.LoggingLevel rollbackLoggingLevel,
                                       org.apache.camel.Processor onExceptionOccurredProcessor)
        Creates the transaction error handler.
        Parameters:
        camelContext - the camel context
        output - outer processor that should use this default error handler
        logger - logger to use for logging failures and redelivery attempts
        redeliveryProcessor - an optional processor to run before redelivery attempt
        redeliveryPolicy - policy for redelivery
        transactionTemplate - the transaction template
        retryWhile - retry while
        executorService - the ScheduledExecutorService to be used for redelivery thread pool. Can be null.
        rollbackLoggingLevel - logging level to use for logging transaction rollback occurred
        onExceptionOccurredProcessor - a custom Processor to process the Exchange just after an exception was thrown.
    • Method Detail

      • clone

        public org.apache.camel.spi.ErrorHandler clone​(org.apache.camel.Processor output)
        Specified by:
        clone in class org.apache.camel.processor.errorhandler.ErrorHandlerSupport
      • supportTransacted

        public boolean supportTransacted()
        Overrides:
        supportTransacted in class org.apache.camel.processor.errorhandler.RedeliveryErrorHandler
      • process

        public void process​(org.apache.camel.Exchange exchange)
        Specified by:
        process in interface org.apache.camel.Processor
        Overrides:
        process in class org.apache.camel.processor.errorhandler.RedeliveryErrorHandler
      • process

        public boolean process​(org.apache.camel.Exchange exchange,
                               org.apache.camel.AsyncCallback callback)
        Specified by:
        process in interface org.apache.camel.AsyncProcessor
        Overrides:
        process in class org.apache.camel.processor.errorhandler.RedeliveryErrorHandler
      • processInTransaction

        protected void processInTransaction​(org.apache.camel.Exchange exchange)
      • doInTransactionTemplate

        protected void doInTransactionTemplate​(org.apache.camel.Exchange exchange)
      • processByErrorHandler

        protected void processByErrorHandler​(org.apache.camel.Exchange exchange)
        Processes the Exchange using the error handler.

        This implementation will invoke ensure this occurs synchronously, that means if the async routing engine did kick in, then this implementation will wait for the task to complete before it continues.

        Parameters:
        exchange - the exchange