Class RetryingReader
A proxy that attempts to continue reading on failure.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.northconcepts.datapipeline.core.DataEndpoint
DataEndpoint.State -
Field Summary
Fields inherited from class com.northconcepts.datapipeline.core.DataReader
fieldLineage, recordLineageFields inherited from class com.northconcepts.datapipeline.core.DataEndpoint
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEYFields inherited from class com.northconcepts.datapipeline.core.Endpoint
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZEFields inherited from class com.northconcepts.datapipeline.core.DataObject
id, log, name, TIMESTAMP_FORMAT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.voidclose()Indicates that this endpoint has finished reading or writing.Returns the field in the record to place the description of the exception that was thrown by the failing read ornullif one should not be added.Returns the discard sink for failing records ornullif one was not assigned.longReturns the total number of exceptions/failures seen by this reader.Returns the first exception thrown for any individual read attempt.longReturns the amount of time to wait (in milliseconds) after the first error, before retrying (default 1 second).Returns the last exception thrown for any individual read attempt.longReturns the number of retries allowed across all read attempts (default max long - 1).intReturns the number of retries allowed for any individual read attempt (default 5).Returns the retry strategy (defaultRetryStrategy.EXPONENTIAL_BACKOFF).protected voidCalled after each failed read attempt; writes the failing record (when known) to the discard writer, if set, and throws oncegetMaxErrorCount()is exceeded.voidopen()Makes this endpoint ready for reading or writing.protected RecordreadImpl()Overridden by subclasses to read the next record from thisDataReader.setDiscardReasonFieldName(String discardReasonFieldName) Specifies the field in the record to place the description of the exception that was thrown by the failing read ornullif one should not be added.setDiscardWriter(DataWriter writer) Assign a discard sink for failing records.setInitialRetryDelay(long initialRetryDelay) Sets the amount of time to wait (in milliseconds) after the first error, before retrying (default 1 second).setMaxErrorCount(long maxErrorCount) Sets the number of retries allowed across all read attempts (default max long -1).setMaxRetryCount(int maxRetryCount) Sets the number of retries allowed for any individual read attempt (default 5).setStrategy(IRetryStrategy strategy) Sets the retry strategy (defaultRetryStrategy.EXPONENTIAL_BACKOFF).Methods inherited from class com.northconcepts.datapipeline.core.ProxyReader
available, getNestedReader, interceptRecord, map, map, setNestedDataReader, setNestedDataReaderMethods inherited from class com.northconcepts.datapipeline.core.DataReader
addLineage, getBufferSize, getNestedEndpoint, getReader, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, isSaveLineage, peek, pop, push, read, setSaveLineage, skipMethods inherited from class com.northconcepts.datapipeline.core.DataEndpoint
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toStringMethods inherited from class com.northconcepts.datapipeline.core.Endpoint
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
-
Constructor Details
-
RetryingReader
-
-
Method Details
-
getMaxRetryCount
public int getMaxRetryCount()Returns the number of retries allowed for any individual read attempt (default 5). -
setMaxRetryCount
Sets the number of retries allowed for any individual read attempt (default 5). -
getMaxErrorCount
public long getMaxErrorCount()Returns the number of retries allowed across all read attempts (default max long - 1). -
setMaxErrorCount
Sets the number of retries allowed across all read attempts (default max long -1). -
getInitialRetryDelay
public long getInitialRetryDelay()Returns the amount of time to wait (in milliseconds) after the first error, before retrying (default 1 second). -
setInitialRetryDelay
Sets the amount of time to wait (in milliseconds) after the first error, before retrying (default 1 second). -
getStrategy
Returns the retry strategy (defaultRetryStrategy.EXPONENTIAL_BACKOFF). -
setStrategy
Sets the retry strategy (defaultRetryStrategy.EXPONENTIAL_BACKOFF). -
getExceptionCount
public long getExceptionCount()Returns the total number of exceptions/failures seen by this reader. This value is also the number of retries as long as maxErrorCount hasn't been exceeded. -
getFirstException
Returns the first exception thrown for any individual read attempt. This value will reset on the next read attempt after a successful retry. -
getLastException
Returns the last exception thrown for any individual read attempt. This value will reset on the next read attempt after a successful retry. -
getDiscardWriter
Returns the discard sink for failing records ornullif one was not assigned. -
setDiscardWriter
Assign a discard sink for failing records.- Parameters:
writer- the discard sink
-
getDiscardReasonFieldName
Returns the field in the record to place the description of the exception that was thrown by the failing read ornullif one should not be added. -
setDiscardReasonFieldName
Specifies the field in the record to place the description of the exception that was thrown by the failing read ornullif one should not be added. -
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classProxyReader- Throws:
DataException
-
close
Description copied from class:DataEndpointIndicates that this endpoint has finished reading or writing.- Overrides:
closein classProxyReader- Throws:
DataException
-
readImpl
Description copied from class:DataReaderOverridden by subclasses to read the next record from thisDataReader. The default implementation ofDataReader.read()now insures that this method will not be called again after it returns anull.If no record is available,
nullwill be returned.Contract for subclasses (see also
docs/authoring/DataReader.md):- Return
nullexactly once to signal end-of-stream. - Do not call this method directly —
DataReader.read()is the template method that wraps exceptions, increments the record count, and tracks lineage. - Do not call
DataEndpoint.incrementRecordCount()here;DataReader.read()already does. - Throw raw exceptions;
DataReader.read()wraps them viaexception(throwable).
- Overrides:
readImplin classProxyReader- Throws:
Throwable
- Return
-
onFailure
Called after each failed read attempt; writes the failing record (when known) to the discard writer, if set, and throws oncegetMaxErrorCount()is exceeded. -
addExceptionProperties
Description copied from class:EndpointAdds this endpoint's current state to aDataException. Since this method is called whenever an exception is thrown, subclasses should override it to add their specific information.- Overrides:
addExceptionPropertiesin classProxyReader
-