I have 2 scheduled jobs on my SQL Server 2005 machine that are scheduled to run each morning (around 2:00 AM). These jobs have worked fine (mostly) for years and although I've had a few hiccups that I've had to work through this problem is completely stumping me.
Two mornings ago, one of my packages started reporting the following error:
Executed as user: [Service Acount]. ...n 9.00.4035.00 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.
Started: 1:15:01 AM Error: 2012-10-17 01:15:03.98
Code: 0xC0016016
Source:
Description: Failed to decrypt protected XML node "DTS:Password"
with error 0x8009000B "Key not valid for use in specified state.".
You may not be authorized to access this information. This error
occurs when there is a cryptographic error. Verify that the
correct key is available. End Error Error: 2012-10-17 01:15:03.99
Code: 0xC0016016
Source:
Description: Failed to decrypt protected XML node "DTS:Password"
with error 0x8009000B "Key not valid for use in specified state.".
You may not be authorized to access this information. This error
occurs when there is a cryptographic error. Verify that the
correct key is available. End Error Error: 2012-10-17 01:15:04.01
Code: 0xC0016016
Source:
Description: Failed to ... The package execution fa... The step failed.
This appears to be a common problem, however, none of the recommendations that I've found either apply to my scenario nor does my instance seem to match most of the other cases where this occurs. Here are the important details regarding my implementation.
ProtectionLevel
is set to DontSaveSensitive
and the iSeries
credentials are stored in a config file that is accessed by SQL Server. Any tips, or thoughts would be tremendously helpful. This export is extremely important and many users/worker rely on this data for their day-to-day work.
Well, I hate having to post such a response but I've solved the problem.
The short answer reason why I had this problem is because one of the fields in a data table was improperly defined. In this case it was declared as a decimal (11, 3)
and it should have been a decimal (13, 3)
. I didn't experience this problem until a value was being posted to the table that didn't fit the (11, 3)
range.
This issue highlights one of my biggest complaints with SSIS. On occasion I get errors that are often well documented on the internet. I search through all of my logs and I try to set up various test scenarios under the assumption that the error message is honest. Yet, when I finally solve the problem, it's completely unrelated to the error message that is written to the log file.
In this case, the error mentioned above had absolutely nothing to do with the problem?! In fact, I was very lucky to see the problem at all. I knew the update on my table might be a potential fix because I've seen SSIS mis-communicate like this before.
I'd like to blame this on neutrinos from space bombarding my server but the best take-away from this experience is to try and solve your SSIS problems based off of the advice of others, however, if their advice doesn't help, realize the issue may be unrelated to the SSIS error message and triple-check everything associated with the point of failure.