Page 1 of 1

SaveInputRecords and GetSavedInputRecords

Posted: Thu Sep 06, 2012 8:39 am
by RamonaReed
Has anyone worked with 8.7 new looping feature of SaveInputRecords and GetSavedInputRecords. I am trying to use this function but all I am getting is an error:
APT_CombinedOperatorController,0: Internal Error: (xfer_->initialFixRunLength_f == initialFixRunLength):./../include/apt_internal/api/transfer_rep.h: 770: Buffer and schema variable padding do not match. Data corruption will occur.
Traceback: Could not obtain stack trace; check that 'gdb' and 'sed' are installed and on your PATH

I verified that the "gdb" and "sed" are installed and on the path, so I don't know what else to do,
Thanks for any help

Posted: Thu Sep 06, 2012 9:45 am
by ArndW
The 'gdb' and 'sed' part of the message can be ignored, it refers to the debugger and getting the stack and this message is common.

If you turn off operator combination ($APT_DISABLE_COMBINATION to "true") the error message might help a bit more.

Posted: Thu Sep 06, 2012 3:21 pm
by ray.wurlod
Can you outline how you are trying to use these functions? They are intended to be used when processing groups of records.

SaveInputRecord() pushes the current record onto a queue and returns the number of records now on the queue.

GetSavedInputRecord() pops one record off the queue.

Posted: Thu Sep 12, 2013 3:47 pm
by bpsprecher
This is a bug that has a patch fix where DataStage does not honor the constraints for multiple output data links in a Transformer stage using Loops Conditions.

The resolution is a patch, JR44926 (http://www-01.ibm.com/support/docview.w ... wg1JR44926), that is not available for v8.5, but is available for v8.7+ and is included in the service fix pack of v9.1.2.

Credit to a developer at my customer named Nathan Lambert for figuring out a workaround: ensure all the output data links have a constraint condition by using the @TRUE in the unconditional output data links.