public class FaultTolerantStepFactoryBean<T,S> extends SimpleStepFactoryBean<T,S>
setSkipLimit(int)
to set how many exceptions of
#setSkippableExceptionClasses(Collection)
types are tolerated.
#setFatalExceptionClasses(Collection)
will cause immediate
termination of job - they are treated as higher priority than
#setSkippableExceptionClasses(Collection)
, so the two lists don't
need to be exclusive.
Skippable exceptions on write will by default cause transaction rollback - to
avoid rollback for specific exception class include it in the transaction
attribute as "no rollback for".SimpleStepFactoryBean
logger
Constructor and Description |
---|
FaultTolerantStepFactoryBean() |
Modifier and Type | Method and Description |
---|---|
protected void |
applyConfiguration(TaskletStep step) |
protected SimpleChunkProcessor<T,S> |
configureChunkProcessor()
Extension point for creating appropriate
ChunkProcessor . |
protected SimpleChunkProvider<T> |
configureChunkProvider()
Extension point for creating appropriate
ChunkProvider . |
protected SkipPolicy |
createSkipPolicy() |
protected Classifier<Throwable,Boolean> |
getRollbackClassifier()
Convenience method for subclasses to get an exception classifier based on
the provided transaction attributes.
|
protected org.springframework.transaction.interceptor.TransactionAttribute |
getTransactionAttribute()
Getter for the
TransactionAttribute for subclasses only. |
protected void |
registerChunkListeners(TaskletStep step,
StepListener listener) |
protected void |
registerStreams(TaskletStep step,
ItemStream[] streams)
Register the streams with the step.
|
void |
setBackOffPolicy(BackOffPolicy backOffPolicy)
Public setter for the
BackOffPolicy . |
void |
setCacheCapacity(int cacheCapacity)
Public setter for the capacity of the cache in the retry policy.
|
void |
setKeyGenerator(KeyGenerator keyGenerator)
The
KeyGenerator to use to identify failed items across rollback. |
void |
setNoRollbackExceptionClasses(Collection<Class<? extends Throwable>> noRollbackExceptionClasses)
Exception classes that are candidates for no rollback.
|
void |
setProcessorTransactional(boolean processorTransactional) |
void |
setRetryableExceptionClasses(Map<Class<? extends Throwable>,Boolean> retryableExceptionClasses)
Public setter for the retryable exceptions classifier map (from throwable
class to boolean, true is retryable).
|
void |
setRetryContextCache(RetryContextCache retryContextCache)
Override the default retry context cache for retry of chunk processing.
|
void |
setRetryLimit(int retryLimit)
Public setter for the retry limit.
|
void |
setRetryListeners(RetryListener... retryListeners)
Public setter for the
RetryListener s. |
void |
setRetryPolicy(RetryPolicy retryPolicy)
Setter for the retry policy.
|
void |
setSkipLimit(int skipLimit)
A limit that determines skip policy.
|
void |
setSkippableExceptionClasses(Map<Class<? extends Throwable>,Boolean> exceptionClasses)
Exception classes that when raised won't crash the job but will result in
the item which handling caused the exception being skipped.
|
void |
setSkipPolicy(SkipPolicy skipPolicy)
A
SkipPolicy that determines the outcome of an exception when
processing an item. |
getChunkOperations, getCommitInterval, getExceptionHandler, getItemProcessor, getItemReader, getItemWriter, getListeners, getName, getObject, getObjectType, getStepOperations, getTaskExecutor, isReaderTransactionalQueue, isSingleton, setAllowStartIfComplete, setBeanName, setChunkCompletionPolicy, setChunkOperations, setCommitInterval, setExceptionHandler, setIsolation, setIsReaderTransactionalQueue, setItemProcessor, setItemReader, setItemWriter, setJobRepository, setListeners, setPropagation, setSingleton, setStartLimit, setStepOperations, setStreams, setTaskExecutor, setThrottleLimit, setTransactionManager, setTransactionTimeout
public void setKeyGenerator(KeyGenerator keyGenerator)
KeyGenerator
to use to identify failed items across rollback.
Not used in the case of the
transactional queue flag
being false (the default).keyGenerator
- the KeyGenerator
to setpublic void setRetryPolicy(RetryPolicy retryPolicy)
retryPolicy
- a stateless RetryPolicy
public void setRetryLimit(int retryLimit)
retryLimit == 1
by default.retryLimit
- the retry limit to set, must be greater or equal to 1.public void setCacheCapacity(int cacheCapacity)
MapRetryContextCache
.setRetryContextCache(RetryContextCache)
is set directly.cacheCapacity
- the cache capacity to set (greater than 0 else ignored)public void setRetryContextCache(RetryContextCache retryContextCache)
setCacheCapacity(int)
is ignored.retryContextCache
- the RetryContextCache
to setpublic void setRetryableExceptionClasses(Map<Class<? extends Throwable>,Boolean> retryableExceptionClasses)
retryableExceptionClasses
- the retryableExceptionClasses to setpublic void setBackOffPolicy(BackOffPolicy backOffPolicy)
BackOffPolicy
.backOffPolicy
- the BackOffPolicy
to setpublic void setRetryListeners(RetryListener... retryListeners)
RetryListener
s.retryListeners
- the RetryListener
s to setpublic void setSkipLimit(int skipLimit)
skipLimit
- the value to set. Default is 0 (never skip).public void setSkipPolicy(SkipPolicy skipPolicy)
SkipPolicy
that determines the outcome of an exception when
processing an item. Overrides the skipLimit
.
The skippableExceptionClasses
are also ignored if this is set.skipPolicy
- the SkipPolicy
to setpublic void setSkippableExceptionClasses(Map<Class<? extends Throwable>,Boolean> exceptionClasses)
skip limit
as well.
Defaults to all no exception.exceptionClasses
- defaults to Exception
public void setNoRollbackExceptionClasses(Collection<Class<? extends Throwable>> noRollbackExceptionClasses)
Step
can not honour the no rollback hint in all circumstances, but any
exception on this list is counted as skippable, so even if there has to
be a rollback, then the step will not fail as long as the skip limit is
not breached.
Defaults is empty.noRollbackExceptionClasses
- the exception classes to setpublic void setProcessorTransactional(boolean processorTransactional)
processorTransactional
- protected Classifier<Throwable,Boolean> getRollbackClassifier()
protected org.springframework.transaction.interceptor.TransactionAttribute getTransactionAttribute()
TransactionAttribute
for subclasses only.getTransactionAttribute
in class SimpleStepFactoryBean<T,S>
protected void applyConfiguration(TaskletStep step)
applyConfiguration
in class SimpleStepFactoryBean<T,S>
protected void registerStreams(TaskletStep step, ItemStream[] streams)
registerStreams
in class SimpleStepFactoryBean<T,S>
step
- the TaskletStep
streams
- the streams to registerprotected SimpleChunkProvider<T> configureChunkProvider()
SimpleStepFactoryBean
ChunkProvider
. Return
value must subclass SimpleChunkProvider
due to listener
registration.configureChunkProvider
in class SimpleStepFactoryBean<T,S>
ChunkProvider
configured for fault-tolerance.protected SkipPolicy createSkipPolicy()
protected SimpleChunkProcessor<T,S> configureChunkProcessor()
SimpleStepFactoryBean
ChunkProcessor
. Return
value must subclass SimpleChunkProcessor
due to listener
registration.configureChunkProcessor
in class SimpleStepFactoryBean<T,S>
ChunkProcessor
configured for fault-tolerance.protected void registerChunkListeners(TaskletStep step, StepListener listener)
registerChunkListeners
in class SimpleStepFactoryBean<T,S>
Copyright © 2013 SpringSource. All rights reserved.