我最近创建的 SSIS 作业遇到了一个问题,该作业因一个奇怪的错误而中断。
背景信息
这是一个 SSIS 包 (.dtsx),它与 SQL 作业(SQL Server 2008,使用 SSMS 创建的作业)一起运行,使用 SQL Server Integration Services 包类型,正如您所期望的那样。这项工作在我们的开发环境中运行良好,但在我们的测试环境中却不行。该包使用配置文件 (.dtsConfig) 来维护不同环境的连接字符串。这个包实际上在做什么很简单;它截断一些临时表,然后使用序列容器中的 8 个数据流任务从 Oracle 数据库中提取数据填充,每个任务分解为 Source (Oracle) -> Data Conversion (for unicode strings) -> Destination ( SQL 服务器)。由于需要建立 Oracle 连接,包中包含该连接的用户/通行证,因此保护级别为 ' EncryptSensitiveWithPassword'来维护它。运行此作业的服务器正在运行 Windows Server 2008 R2 SP1。我相信这就是背景信息,但如果我错过了任何事情,请告诉我。
实际错误
这是损坏的工作的工作历史中唯一有用的消息:
该步骤没有产生任何输出。返回值未知。进程退出代码为 255。步骤失败。
如您所见,不是很有帮助。真正的问题是,当我在服务器上使用 DTEXEC 手动运行此作业时,它运行良好。这让我相信这可能是 sqlagentadmin 的权限问题或其他问题,但我看到的一切似乎都很好。我检查了使用 procexplorer 发生的事情,它正在运行正确的 DTEXEC 命令。应用程序事件查看器确实会弹出这个(所以它可能是一个 oracle 驱动程序问题):
Faulting application name: DTExec.exe, version: 2007.100.5500.0, time stamp: 0x4e7b1ed6
Faulting module name: OraClient11.Dll, version: 11.2.0.1, time stamp: 0x4bb1dcae
Exception code: 0xc0000005
Fault offset: 0x0000000000057106
Faulting process id: 0x2d94
Faulting application start time: 0x01cd66b0d360164d
Faulting application path: C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
Faulting module path: c:\app\product\11.2.0\client_1\bin\OraClient11.Dll
Report Id: 118a2173-d2a4-11e1-b1ec-001517955142
我已经在互联网上浏览了几个小时,并且尝试了一些东西。我将所有数据流任务的延迟验证属性更改为“真”。我尝试使用集成的 SSIS GUI 设置作业,并使用操作系统选项来运行 dtexec,但都失败了。
有什么建议么?对不起,文字墙,但我只是想确保我涵盖了所有内容。
谢谢!