Page 1 of 1

putRecord() called on output port 1 multiple times

Posted: Mon Aug 02, 2010 10:47 pm
by tanay.sd
Hi,

In a parallel job, a lookup stage is using a Sybase table as a reference link, it's a sparse lookup. This job is aborting with following error - "putRecord() called on output port 1 multiple times per activation of the processing logic of the operator."

Does anyone has an idea what does this error indicates?

Please let me know if more information is required.

Thanks,
Tanay

Posted: Mon Aug 02, 2010 11:41 pm
by ray.wurlod
It's not an error. It's an alert. You are generating multiple output rows for some input rows - perhaps using a Lookup stage that returns multiple rows because the lookup is on a secondary key.

Posted: Tue Aug 03, 2010 12:14 am
by tanay.sd
Hi Ray,

Thanks for the response, since it is a fatal event and causing job to abort and reading your response, i think i can do three things, do you think there should be any preference amongst them or are they all just the same?

1 - use a message handler to demote it to infromational message. - Since this is a fatal error, it can only be suppressed, which i don't want to do.
2 - use normal lookup (right now it is sparse) and then select the option to make lookup stage aware that this reference link can return multiple rows.
3 - since it is a direct lookup, i can use distinct in the select query in database stage. - Reference link is returning distinct rows for those keys which are being used for lookup.

Any other thoughts?

Thanks,
Tanay

Posted: Sun Jan 16, 2011 4:50 pm
by shawn.k
Hi Tanay,

If you have a solution for this please let me know, I'm also having same problem.

Thanks in advance.

Shawn