Operational Decision Manager (ODM) stage buffer links (DataStage)

If an input link is marked as a buffer link, the connector reads the records from this link only once and reuses the records for every ruleset execution during the job run. You can configure an input link in the DataStage® flow as a buffer link.

When the buffer link is configured, the records that are captured in the buffer link are used to generate fixed ruleset parameter values to be used across multiple ruleset executions.

If the records arrive to the stage in transaction waves, the connector reads the records from the buffer links separately in each of the waves and reuses them across ruleset executions in that same wave.

If there are no records on the buffer link, action is taken depending on the type of the ruleset parameter that is associated with the buffer link. If the ruleset parameter is based on an array Java™ type, the connector creates an empty array and uses it for the ruleset parameter value across ruleset executions. Otherwise, the connector logs an error and the job fails.

When the ruleset parameter that is associated with the buffer link is not based on an array Java type, or, if the stage is configured for a ruleset based on Dynamic XOM, the connector expects to find a single record on the buffer link and to use it to produce that ruleset parameter value. If multiple records are available on the link, the connector sends the records that follow the first record to a reject link, if defined for that input link and the Leftover record error option is enabled. Otherwise, the connector logs an error message and the job fails.

If a secondary link is configured as a buffer link, regardless of the mode in which the connector runs and regardless of the batch size and key columns that are specified for the stage, the connector reads all available records on that buffer link.

If the primary link is configured as a buffer link, the connector first reads all available records on the primary link. Then, it reads the records from the remaining secondary links that are not configured as buffer links as follows:
  • If the connector is running in batch mode and the key mode is disabled, the connector reads all available records on the secondary link, but not more than n records, where n is the specified batch size (0 for unlimited). After the ruleset is run, the connector continues to read records on this link for the next ruleset execution.
  • If the connector is running in key mode, then the batch size value is ignored and the connector reads all the records on the secondary link and expects all of them to have key column values that match the key column values in one of the records that are retrieved on the primary buffer link. A single ruleset execution is performed in the job, or in the wave if the records are arriving in transaction waves. The records whose key column values do not match the key column values of any of the primary records are rejected if the reject link is defined for that secondary link and the Key mismatch error option is selected for that reject link. Otherwise, the connector logs an error and the job fails.