Description: component "MyDataFlowOLEDBSourceComponent" (10250) failed the pre-execute phase and returned error code 0xC0202009

2

I have an SSIS package that has run for months daily with no problem. Suddenly it is failing every day with the error above. No changes to the package or the stored procs it runs have been pushed, to my knowledge, no changes to the database environment have been made including permissions for the service account that owns the job.

This is a SQL Server 2008 package that connects to a SQL server 2008 R2 database. The configuration is through the ssisconfig table and it defines which server to use through an environment variable.

The component in question is using a stored proc. In the proc, all fields are explicitly cast to the same data type of the table the data is being staged too. The proc runs fine by itself. It is a relatively complex proc that has two table variables and a CTE.

I can't run it from my local on prod and dev is not failing. If I open the prod SSIS package while I am set to the environment variable that the job owner uses, I do not get a validation error on this component. ValidateExternalMetadata is set to true for this component. For the entire package though, Delay Validation is set to True. I do get a validation error that would be expected on a task using a variable that is set dynamically in an earlier task. This error, however, is many, many steps later than the step it is currently failing on.

Usually in the past when we have had this sort of unspecific error, I have been easily able to see the problem with the data that caused the sudden failure. But none of the data in the proc result set is even close to being incorrect for the datatypes defined for staging table for that field. None of the required fields are missing data either.

I am out of ideas for what else to look at. If the environment didn't change, the actual code didn't change and the data looks correct, what is left to try?

sql-server-2008
ssis
asked on Stack Overflow Aug 20, 2015 by HLGEM • edited Sep 5, 2018 by M.Innat

1 Answer

0

As I have commented for details error, you can try below link from Microsoft:

Debug SSIS Package while calling from Agent

Some info from link:

Reasons that the package may have failed are as follows:

  • The user account that is used to run the package under SQL Server Agent differs from the original package author.

  • The user account does not have the required permissions to make connections or to access resources outside the SSIS package.

The package may not run in the following scenarios:

  • The current user cannot decrypt secrets from the package. This scenario can occur if the current account or the execution account
    differs from the original package author, and the package's
    ProtectionLevel property setting does not let the current user
    decrypt secrets in the package.

  • A SQL Server connection that uses integrated security fails because the current user does not have the required permissions.

  • File access fails because the current user does not have the required permissions to write to the file share that the connection manager accesses. For example, this scenario can occur with text log providers that do not use a login and a password. This scenario can also occur with any task that depends on the file connection manager, such as a SSIS file system task.

  • A registry-based SSIS package configuration uses the HKEY_CURRENT_USER registry keys. The HKEY_CURRENT_USER registry keys
    are user-specific. A task or a connection manager requires that the current user account has correct permissions.

Method 1: Use a SQL Server Agent proxy account Create a SQL Server Agent proxy account. This proxy account must use a credential that lets SQL Server Agent run the job as the account that created the package or as an account that has the required permissions.

This method works to decrypt secrets and satisfies the key requirements by user. However, this method may have limited success because the SSIS package user keys involve the current user and the current computer. Therefore, if you move the package to another computer, this method may still fail, even if the job step uses the correct proxy account.

Method 2: Set the SSIS Package ProtectionLevel property to ServerStorage Change the SSIS Package ProtectionLevel property to ServerStorage. This setting stores the package in a SQL Server database and allows for access control through SQL Server database roles.

Method 3: Set the SSIS Package ProtectionLevel property to EncryptSensitiveWithPassword Change the SSIS Package ProtectionLevel property to EncryptSensitiveWithPassword. This setting uses a password for encryption. You can then modify the SQL Server Agent job step command line to include this password.

Method 4: Use SSIS Package configuration files Use SSIS Package configuration files to store sensitive information, and then store these configuration files in a secured folder. You can then change the ProtectionLevel property to DontSaveSensitive so that the package is not encrypted and does not try to save secrets to the package. When you run the SSIS package, the required information is loaded from the configuration file. Make sure that the configuration files are adequately protected if they contain sensitive information.

Method 5: Create a package template For a long-term resolution, create a package template that uses a protection level that differs from the default setting. This problem will not occur in future packages.

Above link will help you through logging and other possible scenarios of failure of your package from SQL Agent. I suspect that your user of Agent has been corrupted. But that is an assumption. You first enable the logging of SSIS by following link :

Enable SSIS Package Logging

Some info from link

To set the logging level for a package by using the Execute Package dialog box

  • In SQL Server Management Studio, navigate to the package in Object Explorer.

  • Right-click the package and select Execute.

  • Select the Advanced tab in the Execute Package dialog box.

  • Under Logging level, select the logging level. See the table below for a description of available values.

  • Complete any other package configurations, then click OK to run the package.

Hope this will help you in the first place. If not please let me know.

answered on Stack Overflow Aug 27, 2015 by Priyank Sheth

User contributions licensed under CC BY-SA 3.0