We have multiple subject areas we load through multiple independent SSIS packages. Each SSIS package is comprised of a Master Package and then subsequent Child packages.
The Master Package calls a stored proc which writes a record to our table DimAudit. This tracks when the overall load begins and ends. a ProcessID is returned and is used to track the entire load. Each Child package calls another stored proc which writes a record to our LogTask table (including ProcessID) to track the smaller steps within the overall Master package.
We Execute the SSIS job via SQL Server Agent. Usually everything works well but we are beginning to experience an increasing number of "phantom" errors. Here is the error message:
Executed as user: IHA\.service-SQL. ... Version 9.00.5000.00 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 7:55:55 AM Error: 2012-12-12 07:59:08.72 Code: 0x00000000 Source: SQL-pLogTaskStart Description: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_LogTask_DimAudit". The conflict occurred in database "Common", table "dbo.DimAudit", column 'ProcessID'. End Error Error: 2012-12-12 07:59:09.25 Code: 0xC002F210 Source: SQL-pLogTaskStart Execute SQL Task Description: Executing the query "pLogTaskStart ?, ?" failed with the following error: "The statement has been terminated.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 7:55:55 AM Finished: 8:08:39 AM Elapsed: 763.922 seconds. The package execution failed. The step failed.
This error does not occur on the same child package all the time (in fact the error happens in different loads altogether). It looks to be random. Usually we simply restart the job without making any changes and it works.
Any ideas from anyone? Any questions at all I can give more information I just don't want to start off to TL;DR.
Thanks!!