SSIS:刚开始获得"密钥无法在指定状态下使用".我的预定SSIS包上的错误

RLH*_*RLH 9 sql-server ssis sql-server-2005 bids ibm-midrange

我的SQL Server 2005计算机上有2个预定作业,计划每天早上(凌晨2点左右)运行.这些工作一直很好(大多数情况下)多年,虽然我有一些打嗝,但我必须解决这个问题,这完全是让我感到困惑.

两个早上,我的一个软件包开始报告以下错误:

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.
Run Code Online (Sandbox Code Playgroud)

这似乎是一个常见的问题,但是,我发现的任何建议都没有适用于我的场景,我的实例似乎也不匹配发生这种情况的大多数其他情况.以下是有关我的实施的重要细节.

  • 此程序包将数据从iSeries系统导出到SQL Server 2005数据表.
  • 此过程成功运行,但在一个特定的表导出中不断崩溃.事实上,它在死亡前超过2小时没有任何问题.在检查了与此步骤相关的所有属性之后,我可以看到,除了表/列导出映射之外,与其他表导出步骤相比,此步骤没有任何不同.
  • 程序包ProtectionLevel设置为DontSaveSensitive,并且iSeries凭据存储在SQL Server访问的配置文件中.
  • 我可以在我的机器上执行BIDS中的失败步骤.无论如何,它在服务器上不起作用,尽管服务器使用完全相同的凭据.
  • 正如我所提到的,我有两个包.它们实际上是相同的,除了一个是从一个iSeries数据库导出数据,另一个是从另一个iSeries DB导出几乎完全相同的结构的数据.即使它使用相同的iSeries凭据,第一个包也没有任何问题.
  • 要清楚,我的服务器上的任何内容都没有在几个月内发生变化(我知道.)这种情况昨天早上才开始发生.

任何提示或想法都会非常有帮助.此导出非常重要,许多用户/工作人员依赖此数据进行日常工作.

RLH*_*RLH 12

好吧,我讨厌发布这样的回复,但我已经解决了这个问题.

我遇到此问题的简短答案是因为数据表中的某个字段未正确定义.在这种情况下,它被声明为a decimal (11, 3),它应该是a decimal (13, 3).在将值发布到不适合该(11, 3)范围的表之前,我没有遇到此问题.

这个问题凸显了我对SSIS最大的抱怨之一.有时我会收到互联网上经常记录的错误.我搜索了所有日志,并尝试在假设错误消息是诚实的情况下设置各种测试方案.然而,当我最终解决问题时,它与写入日志文件的错误消息完全无关.

在这种情况下,上面提到的错误与问题完全无关?!事实上,我很幸运能够看到这个问题.我知道我桌子上的更新可能是一个潜在的解决办法,因为我之前看到过SSIS这样的错误沟通.

我想把这归咎于来自太空轰炸我的服务器的中微子,但是从这次经历中得到的最好的结果就是试图根据他人的建议解决你的SSIS问题,但是,如果他们的建议没有帮助,那么该问题可能与SSIS错误消息无关,并且三重检查与故障点相关的所有内容.

  • 哇..我从来没有想过会导致这个问题的数据类型问题.它对我来说仍然没有任何意义,但我会牢记这一点.感谢您分享您的发现. (2认同)

rvp*_*phx 5

我无法在评论中发布图片,因此将其作为答案发布.

当您尝试将程序包导入SQL Server时,只要右键单击并执行"导入程序包",您将看到以下窗口.

在此输入图像描述

单击窗口右侧的矩形框.它将为您提供更改包的保护级别的选项.将其更改为"不保存敏感"并尝试运行该程序包.请注意,这将要求您删除现有的包并重新导入它.因此,您可能希望在触摸现有配置之前在另一台计算机上尝试它.