Failure Tolerance
Sometimes the user expects errors for a part of records in a process and they are inevitable, yet this problem is known and it is preferable to ignore these failed messages and get final status of the process as SUCCESS. And in this situation failure tolerance parameter comes to aid. It determines how many failed records within a process cause the whole process FAILED.
All default EagleML streams have a default value of failure tolerance "inside", specific for each stream. (you can find them in Message Center Editor in the properties of the stream
Eagle recommends to enable using these preset values for all streams by adding the following line in w_config_custom:
<COL TAG="W_USE_STREAM_FAILURE_TOLERANCE" EXPRESSION="'Y'" USERDESCRIPTION="Use the preset stream Failure Tolerance value for TSR status. Y(yes) or N(no)"/>
For Warehouse Preproc stream you can switch Failure Tolerance type between batches and separate records by setting W_FAILURE_TOLERANCE_TYPE config parameter to either BATCH or RECORD:
<COL TAG="W_FAILURE_TOLERANCE_TYPE" EXPRESSION="'BATCH'"/>
Please note, that W_FAILURE_TOLERANCE_TYPE has sense only for Warehouse Preproc, as other streams do not handle batches of multiple records
Forcing Custom Failure Tolerance in the Control Message
This CM parameter overrides the preset value of the stream.
To do that, add the FailureTolerance task parameter with a custom value to your control message.
In the example below, failure tolerance of 20% of the records is set:
<taskParameter>
<name>FailureTolerance</name>
<dataType>S</dataType>
<value>20</value>
</taskParameter>
In this case, if actual percentage of failed records is less than 20%, the step will be shown as SUCCESS, yet the final status of the whole workflow may be displayed as FAILED. In this case thorough investigation of message details for each step should be performed to locate the issue.
If neither W_USE_STREAM_FAILURE_TOLERANCE parameter is specified, nor FailureTolerance in the CM, the final TSR status will be FAILED in case any record fails (failure tolerance = 0%)