运行dtsserver.getrunningpackages()时出现System.OverflowException

时间:2013-05-07 07:17:56

标签: sql-server ssis

我在运行SSIS包的SQL-Server代理程序作业中突然出错:

  

System.Reflection.TargetInvocationException:抛出了异常   通过调用的目标。 ---> System.OverflowException:   算术运算导致溢出。在   Microsoft.SqlServer.Dts.Server.DtsServer.RunningPackageConvert(RunningPackage   包,DTSRunningPackage100&副本)   Microsoft.SqlServer.Dts.Server.DtsServer.GetRunningPackages()

SSIS中的相关代码:

Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
RunningPackages pkgs = app.GetRunningPackages(null);

类似于this(未提及解决方案)

1 个答案:

答案 0 :(得分:0)

经过多日努力。我终于找到了解决方案。

根本原因:
MsDtsSrvr.exe是所有SSIS服务的根目录。对于在该计算机上运行的每个SSIS包,MsDtsSrvr.exe内存将不断增长。

RunningPackages类将尝试从MsDtsSrvr.exe的内存中获取所有正在运行的包计数。

如果服务器在一段时间内连续运行大量软件包,MsDtsSrvr内存将溢出,导致 ArithmeticOverflow 异常

<强>解决方案:
我们需要释放MsDtsSrvr内存。所以我们需要重新启动SSIS服务或重新启动 MsDtsServer110 服务(它将在后台运行)