Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi Guys,
I have an ETL process that runs fine with no errors; and tDB2Output\tDB2Commit components show no errors and a row count of rows inserted,
However when I check the DB2 table I do not see any data there.
If I write to a flat file and then load that file to DB2, it works fine as is with no changes needed to the data.
Any ideas how to troubleshoot to see where the issue is.
Thanks!
Hello,
If you are trying to insert or update data in the target database and the data violates any integrity constraints set by the database, you can use the Reject flow from the Output component to capture the records in error. Here’s an example of Retrieving data in error with a Reject link from Talend documentation.
Best regards
Sabrina
Check "Commit Every" option in advanced settings of db output component, and make sure no of rows flowing are grater than that count .
Thanks Sabrina, I only see the Rows-Reject option show up if its an Insert\Update.
If its just insert, I dont see that option there. If I set it to insert\Update and set up a REJECT flow and then change the output back to INSERT only, I get the warning saying 'too many rows for the component'.
Is that intended?
Thanks,
Chetan
Thanks Shivanand, I set the commit size to 1, but still the same. I dont get any errors back, but no data added either.
@shivanand wrote:
Check "Commit Every" option in advanced settings of db output component, and make sure no of rows flowing are grater than that count .
Also I ran it in the Debug mode and in the end it says 1 row inserted.
Hi Chetan,
Could you please select the Die on error check box in the tDBOutput in your job? It will throw the details of the error in more detailed manner.
You have specified that you got "too many rows for the component". One reason for this error could be that the input data is having duplicate records and you have a primary key in DB table which is not allowing the data to be loaded there. But in your case, you have mentioned that the data is missing in the table.
It would be great help if you could share the overall job screen shot and the component screenshot of both tDBOutput and tDBCommit for detailed analysis. You can mask any sensitive information before sharing.
If the details shared already helped you to identify the root cause, could you please mark the topic as resolved with resolution details? Kudos are also welcome 🙂
Warm Regards,
Nikhil Thampi
Hi Nikhil, I apologize for the delayed response. This issue seemed to have corrected itself, but it is back when we reran this workflow again after a few weeks.
As suggested, I have the die on error option checked.
You are correct that it is not a data integrity issue because if i route this data to a flat file- and then I load directly to DB2 it works fine.
I do not see any error messaged popup, and the GUI says 2 rows should have been inserted, running it in debug mode also says 2 rows inserted
Here's a screenshot of the job and the the tDB2output and tDB2commit components as well.
Thank you for helping resolve this issue.
Also some additional information- I had the DB2 DBA take a look at this, and they say they see a connection being made to the server, but not insert command following that.
So it seems like there is an issue with the component, I have dropped and added both the tDB2Commit and tDB2Output components, but it has not helped.