如何将SSIS FireWarning事件记录到SQLProvider?

时间:2012-01-10 15:19:56

标签: logging ssis

我目前通过关闭除OnWarning OnTaskFailed和OnError之外的所有日志事件来实现SQL Server集成服务(SSIS)2008项目中的日志记录,并且可以成功将事件记录到EventLog。方法如下:

在ControlFlow选项卡上,右键单击背景并选择Logging....,然后在Providers and Logs表下,选择SSIS log profier for Windows event Log并添加新的EventLog提供程序。 点击Details标签,然后框选择OnErrorOnTaskFailedOnWarning框,然后选择Advanced按钮并关闭除{之外的所有标题事件{1}}和SourceName。单击“确定”,您将拥有一个简单的轻量级事件记录器,它不会使用多余的日志信息填充事件日志。

但是什么能使它变得更好是一种将相关事件直接记录到SQL表的方法,这样我就可以更好地监控和管理结果。如果你愿意,可以将它称为穷人MOM服务(或者遵循最新命名约定的SCOM)。

我调查使用MessageText,但我找不到将此信息记录到SQL表的方法。

我不想编写自定义记录器,只是将这些事件记录到我自己的SQL表中的轻量级且可维护的方式。

任何指针?

1 个答案:

答案 0 :(得分:2)

您能解释一下您使用本机SQL Server日志目标所遇到的麻烦吗?它对我来说很好。

我有一个包围着会发出警告和错误,称为Package2。我启用了SQL Server日志记录

Logging enabled

我选择了指定的事件 Select specific events

只抓住了所需的字段 enter image description here

我跑了包,它失败了。我查询了用于记录的连接(在我的案例中,在名为localsqla的本地实例上编目SSISDB)

C:&GT; sqlcmd -S localhost \ localsqlA -d SSISDB -W -Q“SELECT L.id,L.source,L.event,L.message FROM dbo.sysssislog L WHERE L.starttime&gt;'2012-01-10'”< / p>

结果。它们在这里打印不好,所以我用|(空间管道空间)

分隔它
id source event message
-- ------ ----- -------
4054 | Package2 | PackageStart | Beginning of package execution.
4055 | Execute SQL Task | OnError | Executing the query "SELECT ? as c1, ? as c2, ? as C3" failed with the following error: "Syntax error, permission violation, or other nonspecific error". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
4056 | Package2 | OnError | Executing the query "SELECT ? as c1, ? as c2, ? as C3" failed with the following error: "Syntax error, permission violation, or other nonspecific error". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
4057 | Execute SQL Task | OnTaskFailed |
4058 | Package2 | OnWarning | SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
4059 | Package2 | PackageEnd | End of package execution.

(6 rows affected)