7

我的公司最近使用 tivoli 工作负载调度程序 (TWS) 将作业从 z/OS 远程触发到窗口服务器。我们测试了tivoli可以成功触发mssql服务。

现在的问题是我们有一个 .NET CL 程序,我们每天使用它来将 AS400 中的一些数据提取到 mssql 服务器,之前使用 windows 调度程序并在特定时间范围内每天触发时它可以完美运行。现在我们尝试集中调度程序,以便 TWS 远程触发准备好的批处理文件(它将触发 CL 程序)。

但 CL 程序的执行在尝试连接到 AS400 DB 时显示以下错误。

.Net Framework 数据提供程序需要 Microsoft 数据访问组件 (MDAC)。请安装 Microsoft 数据访问组件 (MDAC) 版本 2.6 或更高版本。

编辑:在正常情况下,我们假设程序可以成功触发,它应该就像使用 windows 调度程序一样,设置一个时间表并执行它。唯一的区别是调度器现在不是windows调度器,而是切换到TWS并远程触发CL程序。但是执行 CL 程序期间执行显示上述错误。我们不知道为什么会出现这个错误。我们尝试重新运行 CL 程序并在 Windows 调度程序中安排它,工作正常。但在 TWS 上远程安排,错误。

对于我们迄今为止所做的测试和观察:

  1. 我们的服务器是 Windows server 2008 SP2 x64,我对旧版本 windows 中使用的 MDAC 进行了一些研究,而 server 2008 应该提供更新版本的 MDAC (WDAC 6.0),它不能重新安装,所以我认为 MDAC/WDAC 必须是正确安装。

  2. CL 程序是用 .NET 2.0/ 3.0 / 3.5 编译的,并测试它们都产生相同的错误。

  3. 他们的错误日志能够生成到 sql server DB,所以我假设在 CL 程序中使用的连接驱动程序没有问题。但它可能是由 IBMDA400 驱动程序引起的。

  4. TWS 使用我们服务器中的管理员帐户来触发批处理文件,我们的服务器中安装了一个 TWS 客户端(侦听器)用于触发我们服务器中的程序,但我们不知道它们如何连接到我们的服务器(SSH?telnet?)并且他们似乎实际上并没有登录到我们的服务器进行远程触发(在静默模式下触发我们的工作)。

我们急于寻求任何解决方案,如果有人能提供任何线索或想法,那将是非常有帮助的,并为将来遇到同样问题的人提供了很大的帮助。

非常感谢!。

4

3 回答 3

9

对于那些搜索,尽管 MDAC 2.8 SP1 已经安装在 2008 盒子上,但我最近在 Web 应用程序中遇到了这个错误。我们重新安装了 MDAC,但它似乎没有修复。 为受影响的 Web 应用程序停止和启动应用程序池解决了该问题。是否需要重新安装,或者是否需要 Windows 更新或某些东西需要没有发生的 iisreset,目前还不是 100% 清楚。

于 2013-05-23T19:06:00.240 回答
5

此错误的原因是应用程序池正在尝试从 HKey_Current_User 配置单元读取注册表项,该配置单元并不总是加载。解决方法如下:

  1. 打开 IIS 管理控制台
  2. 点击“应用程序池”
  3. 右键单击您网站的池,然后选择“高级设置”
  4. 将设置“加载用户配置文件”更改为 True
于 2014-10-21T19:57:38.707 回答
1

我只能给你一些调查的途径。

  1. 您可能想尝试使用 IBM DB2 iSeries ADO.NET 数据提供程序,而不是使用 IBMDA400 OLE DB 提供程序。当我们将一个平台重新构建项目转移到一个更新的 x64 的 Windows Server 时,我的团队也有类似的经历。出于某种原因,我们尝试在 .NET Windows 服务上使用较旧的 OLE DB 提供程序时,得到了非常奇怪的结果。后来我们发现这是由于我们的服务器是 64 位的。

  2. 我怀疑您对 IBMDA400 是 32 位驱动程序有疑问。检查您是否将 .NET CL 程序编译为 64 位。您可以尝试将您的程序编译为32 位应用程序并在您的服务器上启用 Wow64 。

希望其中一个能引导您找到解决方案!

于 2012-05-25T05:26:14.710 回答