SSIS内置的调试工具是非常完备的,主要是设置断点和查看变量值,这是在Package的设计阶段可以使用的工具,在Package部署到服务器之后,用户还可以使用事件处理程序以实现Package出错的自我修复,使用日志记录等来监控Package的运行状态,以记录Package出现故障时的现场信息,为后续修复Package的错误提供最原始和有效的信息。在数据流Task中,可以通过重定向错误行把错误保存起来,便于后续的调试和故障排除。

一,设置断点

断点是调试Package最常用的工具,选中Task,右击选择“Edit Breakpoint”,打开断点编辑器,为该Task组件设置断点。断点的触发条件是Task接收到特定的事件,用户可以为一个Task设置多种中断条件的断点,常用的中断条件是:

  • Bread when the container receives the OnPreExecute event
  • Bread when the container receives the OnPostExecute event
  • Bread when the container receives the OnError event

设置断点的向导如下图所示,不仅可以选择中断条件(Break Condition),还是设置条件命中的次数和类型:

在断点处,用于可以通过进行Step Into、Step Over和Step Out操作,以便查看Package的运行状态。

二,查看变量值

在Packag运行到断点时,用户可以通过Local窗口来窗口Package中所有变量和属性的值,

Local窗口中的变量是Package中的所有变量,包括用户自定义的变量和系统变量。在调试Package时,变量太多,以至于开发工程师需要浪费时间去查找比较关键的变量。一般情况下,影响Package运行结果的是很少的几个变量,用户比较关注的也是这几个变量,这是,用户可以通过Watch窗口,输入特定的变量,重点监控这几个变量的当前值,以确认Package运行的状态:

三,事件处理程序

每一个Task和容器都会在运行时触发事件,例如,OnError事件等,事件处理程序是在特定事件被触发时,SSIS自动调用的处理程序,事件处理程序会捕获和处理相关事件。在设计Package时,开发工程师预测可能出现的异常,当异常发生时,Package自动调用事件处理程序来发送邮件通知相关人员及时修复可能存在的异常,或者重新执行Package等,以实现Package的自我修复。

事件处理程序捕获事件,而事件是由Task触发的,常用的事件是

  • OnError事件:只要发生错误都会触发该事件;
  • OnPostExecute事件:仅在Task或容器执行完成之后触发该事件;
  • OnPreExecute事件:仅在Task或容器执行之前触发该事件;

事件处理程序继承其子Task的相关事件,这意味着如果存在一个容器,并且该容器有一个针对OnError事件定义的事件处理程序,那么当该容器的一个子Task发生错误时,将会触发此容器的事件处理程序。该过程被称作“冒泡”事件,或者从子Task到容器的旅行。最高级别的可执行文件是Package本身,因此,如果在Package级别定义了一个事件处理程序,那么每当事件发生时,都会触发Package级别的事件处理程序。

四,日志记录

通常情况下,使用项目部署模型把Package部署到SSIS服务上,使用SSISDB数据库来保存Package运行的日志。如果要修改日志记录的级别,那么需要修改SSISDB的默认设置。

在Integration Services Catalogs目录下,点击SSISDB,配置Server-wide的默认日志级别。

五,错误输出

在数据流中,错误行都是通过使用Error Output来配置的,这些属性高数数据流组件,当针对某一行的操作失败(出错或截断)时应该怎么做。

对错误或截断的处理程序有三种:

  • 组件失败(Fail Component):当针对某一列选择了“组件失败”,并且产生了错误时,数据流将停止运行并失败,同时触发任何针对数据流任务的OnError事件。
  • 重定向行(Redirect Row):当任何被标记为重定向的列中任何一行产生错误,整个行都将被发送到红色的错误路径输出,但是,数据流任务不会失败。如果没有使用红色的错误路径,那么该行将从数据流中丢弃。
  • 忽略失败(Ignore Failure):如果错误发生在源或转换中,那么错误列的值会被设置为NULL。如果是截断错误,那么只会向下游发送截断之后的值。当对目标进行处理时,某一列的忽略错误会导致忽略整个数据行,而不是忽略错误列。

用户可以把错误行重定向,保存到特定的数据结构中,以保存错误的数据,然后分析数据,对Package进行故障排除。

SSIS 调试和故障排除的更多相关文章

  1. 【FICO系列】SAP FI验证故障排除(调试)

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP FI验证故障排除(调试) ...

  2. JVMTI 中间JNI系列功能,线程安全和故障排除技巧

    JVMTI 中间JNI系列功能,线程安全和故障排除技巧 jni functions 在使用 JVMTI 的过程中,有一大系列的函数是在 JVMTI 的文档中 没有提及的,但在实际使用却是很实用的. 这 ...

  3. ORA-4031 错误故障排除与诊断[视频] (Doc ID 2016002.1)

    Copyright (c) 2019, Oracle. All rights reserved. Oracle Confidential.     ORA-4031 错误故障排除与诊断[视频] (Do ...

  4. Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError

    Atitit.故障排除系列---NoClassDefFoundError  NoClassDefFoundError java.lang.ClassNotFoundException找不到类异常.当应 ...

  5. Atitit.故障排除系列---NoClassDefFoundError  NoClassDefFoundError ClassNotFoundException

    Atitit.故障排除系列---NoClassDefFoundError  NoClassDefFoundError ClassNotFoundException 1. java.lang.Class ...

  6. 对NetBackup 问题进行故障排除的步骤

    错误消息通常是指出哪里出现故障的手段.如果在界面上没有看到错误消息,但仍怀疑有问题,请检查报告和日志. NetBackup提供了各种报告和日志记录工具, 这些工具可提供错误消息,直接为您指出解决方案. ...

  7. kubernetes 故障排除、处理、预防

    kubernetes 故障排除.处理.预防 故障排除顺序和思路 第一步: 我们可以通过查看节点是否正常,一是保证 K8S API Server 是正常的,二是可以查看节点集群网络中是否存在节点异常.如 ...

  8. Kubernetes Deployment故障排除图解指南

     个人K8s还在学习中,相关博客还没有写,准备学第二遍再开始学,发现这篇文章挺好,先转载一下. 原创: 白明的赞赏账户 下面是一个示意图,可帮助你调试Kubernetes Deployment(你可以 ...

  9. 使用JDK工具进行Java服务器应用程序故障排除

    Java性能调优指南–有关提高Java代码性能的各种技巧. 最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 1. 介绍 在Java世界中,我们大多数人习惯于在Java应 ...

随机推荐

  1. 飞鱼相册笔记(1)----外置SD卡文件夹名称不区分大小写

    飞鱼相册笔记(1)----外置SD卡文件夹名称不区分大小写 在飞鱼相册发布的第一个测试版中,很多用户表示无法查看外置SD卡中的照片.乍一听觉得加个外置SD卡的根目录,然后在扫描所有图片的时候把这个根目 ...

  2. IOS常用第三方库《转》

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  3. 关于mybatis更新数据的问题

    前两天用mybatis的时候,发现这样一个问题,日志显示mytatis更新数据已经成功了,但是实际上数据库是没有更新到的,经过一番查找,发现mybatis更新的时候默认返回的是查找到的数据(Rows  ...

  4. 自动红眼移除算法 附c++完整代码

    说起红眼算法,这个话题非常古老了. 百度百科上的描述: "红眼"一般是指在人物摄影时,当闪光灯照射到人眼的时候,瞳孔放大而产生的视网膜泛红现象. 由于红眼现象的程度是根据拍摄对象色 ...

  5. Failed to create the Java Virtual Machine(zt)

    http://lixueli26.iteye.com/blog/711152 在以下版本也发生类似情况,采用同样方法得以解决. 版本:eclipse-jee-indigo-win32 自己电脑上装的j ...

  6. composer安装yii2

    这几天准备入门yii2,但是对于一个看php不到5天的小白来说,只能说路途艰辛,不过,总算是解决了,先放一张大图 感受一下成功的喜悦...(文章最后有惊喜哦) ok,下面就描述一下安装的步骤: 1.安 ...

  7. 转载 Elasticsearch开发环境搭建(Eclipse\MyEclipse + Maven)

    概要: 1.使用Eclipse搭建Elasticsearch详情参考下面链接 2.Java Elasticsearch 配置 3.ElasticSearch Java Api(一) -添加数据创建索引 ...

  8. Prime 算法的简述

    前面在介绍并查集时顺便提了Kruskal算法,既然已经说到了最小生成树问题,就没有道理不把Prime算法说了. 这里面先补充下Kruskal算法的大概意思,Kruskal算法通过把所有的边从小到大排列 ...

  9. CSS学习笔记四:下拉选择框以及其动画特效

    以前学的只是了解了css的一些基本属性,在做项目的时候都是直接使用bootstrap响应式来写项目,这样子很方便,很快捷,但是在自己看来还是有一点缺陷的,毕竟,我很多时候不怎么清楚它里面的具体运作.所 ...

  10. eclipse汉化链接

    百度百科 https://jingyan.baidu.com/article/4b07be3cb1864e48b380f315.html 博客园:http://blog.csdn.net/sunny_ ...