Class RollbackOnFailure
java.lang.Object
org.apache.nifi.processor.util.pattern.RollbackOnFailure
RollbackOnFailure can be used as a function context for process patterns such as Put to provide a configurable error handling.
RollbackOnFailure can add following characteristics to a processor:
There are two approaches to apply RollbackOnFailure. One is using ExceptionHandler.adjustError(BiFunction),
and the other is implementing processor onTrigger using process patterns such as Put.adjustRoute(AdjustRoute).
It's also possible to use both approaches. ExceptionHandler can apply when an Exception is thrown immediately, while AdjustRoute respond later but requires less code.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate intstatic final org.apache.nifi.components.PropertyDescriptorprivate final booleanprivate final boolean -
Constructor Summary
ConstructorsConstructorDescriptionRollbackOnFailure(boolean rollbackOnFailure, boolean transactional) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic <FCT extends RollbackOnFailure>
BiFunction<FCT, ErrorTypes, ErrorTypes.Result> createAdjustError(org.apache.nifi.logging.ComponentLog logger) Create a function to use withExceptionHandlerthat adjust error type based on functional context.static <FCT extends RollbackOnFailure>
PartialFunctions.AdjustRoute<FCT> createAdjustRoute(org.apache.nifi.processor.Relationship... failureRelationships) Create anPartialFunctions.AdjustRoutefunction to use with process pattern such asPutthat adjust routed FlowFiles based on context.static <FCT extends RollbackOnFailure,I>
ExceptionHandler.OnError<FCT, I> createOnError(ExceptionHandler.OnError<FCT, I> onError) static org.apache.nifi.components.PropertyDescriptorcreateRollbackOnFailureProperty(String additionalDescription) voidintbooleanbooleanstatic <FCT extends RollbackOnFailure>
voidonTrigger(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.processor.ProcessSessionFactory sessionFactory, FCT functionContext, org.apache.nifi.logging.ComponentLog logger, PartialFunctions.OnTrigger onTrigger) intproceed()boolean
-
Field Details
-
rollbackOnFailure
private final boolean rollbackOnFailure -
transactional
private final boolean transactional -
discontinue
private boolean discontinue -
processedCount
private int processedCount -
ROLLBACK_ON_FAILURE
public static final org.apache.nifi.components.PropertyDescriptor ROLLBACK_ON_FAILURE
-
-
Constructor Details
-
RollbackOnFailure
public RollbackOnFailure(boolean rollbackOnFailure, boolean transactional) Constructor.- Parameters:
rollbackOnFailure- Should be set by user via processor configuration.transactional- Specify whether a processor is transactional. If not, it is important to callproceed()after successful execution of processors task, that indicates processor made an operation that can not be undone.
-
-
Method Details
-
createRollbackOnFailureProperty
public static org.apache.nifi.components.PropertyDescriptor createRollbackOnFailureProperty(String additionalDescription) -
createAdjustError
public static <FCT extends RollbackOnFailure> BiFunction<FCT,ErrorTypes, createAdjustErrorErrorTypes.Result> (org.apache.nifi.logging.ComponentLog logger) Create a function to use withExceptionHandlerthat adjust error type based on functional context. -
createAdjustRoute
public static <FCT extends RollbackOnFailure> PartialFunctions.AdjustRoute<FCT> createAdjustRoute(org.apache.nifi.processor.Relationship... failureRelationships) Create anPartialFunctions.AdjustRoutefunction to use with process pattern such asPutthat adjust routed FlowFiles based on context. This function works as a safety net by covering cases that Processor implementation did not use ExceptionHandler and transfer FlowFiles without considering RollbackOnFailure context. -
createOnError
public static <FCT extends RollbackOnFailure,I> ExceptionHandler.OnError<FCT,I> createOnError(ExceptionHandler.OnError<FCT, I> onError) -
onTrigger
public static <FCT extends RollbackOnFailure> void onTrigger(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.processor.ProcessSessionFactory sessionFactory, FCT functionContext, org.apache.nifi.logging.ComponentLog logger, PartialFunctions.OnTrigger onTrigger) throws org.apache.nifi.processor.exception.ProcessException - Throws:
org.apache.nifi.processor.exception.ProcessException
-
proceed
public int proceed() -
getProcessedCount
public int getProcessedCount() -
isRollbackOnFailure
public boolean isRollbackOnFailure() -
isTransactional
public boolean isTransactional() -
canRollback
public boolean canRollback() -
shouldDiscontinue
public boolean shouldDiscontinue() -
discontinue
public void discontinue()
-