【发布时间】:2015-05-01 20:15:34
【问题描述】:
我们开发了与在线 REST API(准确地说是 Shopify)集成的自定义 SSIS 组件,这些组件在 BIDS 中以及每次都能正常工作。但是,当我为使用组件的 SSIS 包创建 SQL Server 代理作业时,某些组件不起作用,没有错误,只是从未命中 Pre Execute。不起作用的组件调用 REST API 并在某些订单上设置特定的 TAGS,它们使用 JSON 来完成。 SQL Server 代理在同一台机器(我自己的)上运行,它正在执行与 BIDS 相同的 SSIS 包。没有错误,并且 SQL Server JOB 报告成功。
我的机器是 64 位设置的,所以很明显代理将以 64 位运行,因此可能存在问题。
这是我已经尝试过的
- 更改了 SQL Server 代理用户以消除代理/用户问题。
- 将步骤的设置更改为使用 32 位运行时(勾选“使用 32 位运行时”)
- 我曾尝试使用 Any CPU x86 x64 编译我的代码 .. 结果不同,但它们都不起作用等
- 安装项目(这是解决方案的一部分)是一个 WIX 工具集项目,只能使用 x86 进行编译,我认为我无法更改。
- 记录到日志文件的位置。
我认为这可能是 32 位/64 位问题,但也可能是错误的。日志文件显示以下内容 从 BIDS 调用时(有效) • 验证(以 32 位运行的代码) • 验证(以 32 位运行的代码) • 点击预执行,之后一切正常
从 SQL Server 代理调用时(不起作用)
• 验证(以 32 位运行的代码) • 验证(以 64 位运行的代码) • 从不点击预执行
就像我说的,我怀疑这是 64 位问题,但可能是错误的。
【问题讨论】:
-
您错过了两个重要信息:1. SQL 代理是在您的机器上还是在不同的机器上? 2. 错误信息是什么? (你说不工作这是一个非常糟糕的描述)
-
查看带有 SQL 代理的机器上的 SSIS 版本以及 BIDS 版本。
-
谢谢。 SQL Server 代理在同一台机器(我自己的)上运行,它正在执行与 BIDS 相同的 SSIS 包。没有错误,包成功但从未命中自定义组件上的 Pre Execute。
-
您是否从日志中计算出预执行?它是否会针对其他任务执行预执行?它是否会针对其后的任务执行预执行(带有成功/失败约束?)您可能需要放置一些虚拟的进行测试。 SSIS 可能不是适合这项工作的工具。任何工具都可以将数据插入数据库 - 不必是 SSIS。
-
是的,从日志中计算出来,上面有一个自定义组件可以正常工作,即点击预执行。这是最后一项任务,所以它不会继续下去,但我会尝试像你说的那样放置虚拟的(明天早上现在)。我认为在这种情况下,SSIS 是我们唯一的选择,因为它与 2 个不同的数据源通信,并且这些自定义组件一直在使用 API 下载订单,将它们设置为发货......等等。我想我可能不得不求助于脚本任务,但这是我最后的选择。
标签: ssis sql-server-2008-r2 shopify custom-component