![]() |
Consumption Analytics Documentation |
Exception processing deals with input records that are rejected by a processor. Each record rejected by a processor is written to an exception file. The default exception file is created under the active processing directory and follows a naming convention of:
<jobName>_<selectDate>_exceptions.ccr
.
There are several CCRecordTransformTasklet
properties you can set to customize exception processing. These include the number of exceptions to log, the maximum number of exceptions to process before aborting, and the name of the exception file.
For example, the following properties specify that no more than 50 exceptions will be written to the log, no more than 1000 processing exceptions will occur before aborting, and that the exception file will use the default naming convention:
<bean class="com.cloudcruiser.batch.CCRecordTransformTasklet"> ... <property name="exceptionLogLimit" value="50" /> <property name="exceptionLimit" value="1000" /> <property name="exceptionOutput" value="file:${env.processDir}\${env.jobName}_${env.selectDate}_exceptions.ccr" /> ...
To disable exception handling, you can set the
exceptionLimi
t
property to zero for immediate failure on first exception (setting the exceptionLimit
to -1
is the same as no limit). The exceptionLimit
parameter's default value is zero (0).
An exception file is created if one or more records were rejected. You can specify another transform task to attempt alternate processing on exception records. This secondary transform step should set the inputRequired
property to false
:
<property name="inputRequired" value="false"/>
In this case, the default output exception filename must be overridden because the task will fail if the input file matches an output file. A merge step (CCRecordMergeTasklet
) is then required to combine records from each transform step into a single file for further processing.
Within the transform step, the CreateIdentifierFromTable transform processor creates a new identifier from a translation table using an existing identifier value. This also enables exception processing for dealing with records that do not satisfy processing requirements. With exceptionProcessing
set to true
:
<bean class="com.cloudcruiser.batch.transform.CreateIdentifierFromTable"> ... <property name="exceptionProcessing" value="true" /> </bean>
The records that result in a processing exception are handled by step-level exception processing in CCRecordTransformTasklet
. Otherwise, processing exceptions are logged and no further action is taken.
(c) Copyright 2017-2020 Hewlett Packard Enterprise Development LP