Optim Data Privacy Providers
11.3.0
|
ODPP provides formatted error messages for ODPP error codes. ODPP errors are recorded by the service providers and presented to the user by means of Provider_GetErrorCount(), Provider_GetError(), Provider_GetFormattedErrorMsg() and Provider_TermErrors() APIs. The error messages are stored in an XML file. This file is used by the framework to return the error messages. Applications do not need to use this XML file directly. For additional details about this feature, refer to the APIs, above.
Error codes returned from Provider_FrmwInit() may be reported using the Provider_GetFmtErrMsgEarly() function.
The following errors will not be captured by the Error Capture:
Token Ids are used to represent the various tokens captured during Error Recording. This gives an opportunity to the caller to get an understanding of why the error happened. Token IDs are numeric values declared using an enum DP_ETOKENID. Token IDs start with a value of 1 and are named as ODPP_TOKID_<token identifier>, <token identifier> is declared in ODPPTokIdsH.h.
For example:
Free the memory allocated.
During row processing, if an error occurs, an error control block (ECB) structure is created and held in memory until the error is reported using the Error Reporting API. An ECB holds the error code, row number and related tokens, if any, for a single error. Informational errors such as ODPP_COL_INFO_SRC_NULL_DST_SETTONULL also result in an ECB structure getting created.
Some applications like Optim LUA / Optim Column Map Exits call Provider_Service() one row at a time while other applications may call Provider_Service() sending a batch of rows. When sending a batch of rows where the data set is large, say 1 million rows, it is recommended to divide the set into smaller batches of a thousand or a few thousand rows each (depending on the memory available to the process) and call Provider_Service() sending a batch of rows at a time. If 1 million rows are sent together and if all the source values are NULL the process might run out of memory since 1 million ECB structures are held in memory until the errors are reported or until the ODPP framework is terminated. Whereas if 1000 rows are sent at a time if all the source values are NULL, 1000 ECBs will be held in memory and can be reported when Provider_Service() returns ensuring the process does not run out of memory.