SSIS 调试和故障排除
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 调试和故障排除的更多相关文章
- 【FICO系列】SAP FI验证故障排除(调试)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP FI验证故障排除(调试) ...
- JVMTI 中间JNI系列功能,线程安全和故障排除技巧
JVMTI 中间JNI系列功能,线程安全和故障排除技巧 jni functions 在使用 JVMTI 的过程中,有一大系列的函数是在 JVMTI 的文档中 没有提及的,但在实际使用却是很实用的. 这 ...
- ORA-4031 错误故障排除与诊断[视频] (Doc ID 2016002.1)
Copyright (c) 2019, Oracle. All rights reserved. Oracle Confidential. ORA-4031 错误故障排除与诊断[视频] (Do ...
- Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError
Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError java.lang.ClassNotFoundException找不到类异常.当应 ...
- Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError ClassNotFoundException
Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError ClassNotFoundException 1. java.lang.Class ...
- 对NetBackup 问题进行故障排除的步骤
错误消息通常是指出哪里出现故障的手段.如果在界面上没有看到错误消息,但仍怀疑有问题,请检查报告和日志. NetBackup提供了各种报告和日志记录工具, 这些工具可提供错误消息,直接为您指出解决方案. ...
- kubernetes 故障排除、处理、预防
kubernetes 故障排除.处理.预防 故障排除顺序和思路 第一步: 我们可以通过查看节点是否正常,一是保证 K8S API Server 是正常的,二是可以查看节点集群网络中是否存在节点异常.如 ...
- Kubernetes Deployment故障排除图解指南
个人K8s还在学习中,相关博客还没有写,准备学第二遍再开始学,发现这篇文章挺好,先转载一下. 原创: 白明的赞赏账户 下面是一个示意图,可帮助你调试Kubernetes Deployment(你可以 ...
- 使用JDK工具进行Java服务器应用程序故障排除
Java性能调优指南–有关提高Java代码性能的各种技巧. 最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 1. 介绍 在Java世界中,我们大多数人习惯于在Java应 ...
随机推荐
- React Native入门 认识Flexbox布局
Flexbox布局是由W3C在09年提出的在Web端取代CSS盒子模型的一种布局方式. ReactNative实现了Flexbox布局的大部分功能. Flexbox布局所使用的属性,基本可以分为两大类 ...
- webpack.config.js配置文件
1.基本配置 webpack在执行时,除在命令行传入参数,还可以通过指定的配置文件来执行.默认会搜索当前目录下webpack.config.js.这个文件是一个node.js模块,返回一个json格式 ...
- 乐学习知选择--我的J2EE技术历程
转眼换工作已经两个多月了,转眼今年已经到9月份了,转眼女朋友也来到了自己身边.有太多的转眼,如今在这个经理不在的早晨,可以肆意的点点这里看看那里,想想自己,有点吉利思的感觉. 这两个多月,知道了什么叫 ...
- java死锁小例子
package cn.com.io.threadDemo.ThreadSyn; /** * 通过两个属性值创建死锁 * 本程序通过两个线程各自锁定一个属性值,这样两个线程都无法结束,造成死锁 * @a ...
- JavaScript中对象数组 根据某个属性值 然后push到新的数组
原文链接 https://segmentfault.com/q/1010000010075035 将下列对象数组中,工资大于1w的员工,增加到对象数组 WanSalary中 var BaiduUser ...
- openssh升级的坑爹之路
安装Zlib http://zlib.net/zlib-1.2.8.tar.gz tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure --sha ...
- 2017 Gartner数据科学魔力象限出炉,16位上榜公司花落谁家?
https://www.leiphone.com/news/201703/iZGuGfnER4Sv2zRe.html 2017年Gartner数据科学平台(在2016年被称作“高级分析平台”)的魔力象 ...
- Java自学开发编程路线图(文中有资源福利)
Java 语言入门 免费视频资源<毕向东Java基础教程>:http://yun.itheima.com/course/7.html JavaEE 学习大纲 所处阶段 主讲内容 技术要点 ...
- Apriori算法-频繁项集-关联规则
计算频繁项集: 首先生成一个数据集 def loadDataSet(): return [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]] 测试数据集da ...
- Scala编程入门---面向对象编程之Trait
Scala中Trait是一种特殊概念 首先我们可以将Triat做为接口来使用,此时的Triat就与java中的接口非常相似 在Triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出具体的 ...