



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Datastage Routine示例使用Routine提取JOB错误信息录入数据库环境:Red Hat Linux AS 4 + Datastage EE 7.5.2 + Oracle 10g#在此感谢一下金证科技的Li Bin和Wang Jun,是他们带我学习Datastage的!目标:使用Routine将JOB运行后的错误信息录入数据库(暂时忽略警告信息)方案:Server Routine调用Shell脚本,Shell脚本调用存储过程,存储过程把传递的参数信息写入数据库表实现过程:1.创建Server Routine,命名DSJobLog,系统默认DSJ开头的Routine为内置(Built-in)Routine,类型为Before/After Subroutine2.编写Routine的Code,代码及注释如下:*ROUTINE名称:DSJobLog*ROUTINE类型:Server Subroutine *ROUTINE功能:提取JOB运行后的错误日志并写入数据库*ROUTINE输入参数1:InputArg *ROUTINE返回参数1:ErrorCode*ROUTINE作者:wangfei ()*ROUTINE日期:20100623 *$INCLUDE DSINCLUDE JOBCONTROL.H*设定返回值ErrorCode = 0*设定当前运行的JOBJobHandle = DSJ.ME*设定变量cmdstr,存储shell命令及参数cmdstr= sh /home/dsadm/EDCETL/SH/PARA/etl_log.sh * 如果状态为失败,则产生错误日志*设定变量LogList并初始化,存储JobLog信息 LogList =*判断运行subroutine前JOB的执行状态(DSJ.JOBINTERIMSTATUS)*如果产生错误(代码为3),则将error信息存储于动态数组Summary中(1为INFO,2为WARN,3为FATAL) if DSGetJobInfo(JobHandle,DSJ.JOBINTERIMSTATUS) = 3 then Summary=DSGetLogSummary(JobHandle , DSJ.LOGFATAL, DSGetJobInfo(JobHandle,DSJ.JOBSTARTTIMESTAMP), DSGetJobInfo(JobHandle,DSJ.JOBLASTTIMESTAMP), 10)*通过循环先取到错误事件的ID(EvtID),然后依据EvtID获得错误信息 *循环开始 FOR I=1 TO 10 EvtID = Field(Summary,1) if EvtID = then exit end LogList =LogList : DSGetLogEntry(JobHandle ,EvtID):ZhongTu NEXT I *循环结束 end*如果状态为失败,则产生错误日志*开始拼接shell命令的参数*Char(34)在VB中是双引号,这里必须添加双引号以便Shell脚本能够正确的把带单引号的参数传递给存储过程cmdstr=cmdstr:Char(34) :DSGetJobInfo(JobHandle,DSJ.JOBNAME):Char(34): cmdstr=cmdstr:Char(34) :DSGetJobInfo(JobHandle,DSJ.JOBSTARTTIMESTAMP):Char(34): cmdstr=cmdstr:Char(34) :DSGetJobInfo(JobHandle,DSJ.JOBLASTTIMESTAMP):Char(34): cmdstr=cmdstr:Char(34) :DSGetJobInfo(JobHandle,DSJ.JOBINTERIMSTATUS):Char(34): cmdstr=cmdstr:1: cmdstr=cmdstr:Char(34) :LogList:Char(34)*结束拼接shell命令的参数*执行Shell脚本Call DSExecute(UNIX, cmdstr, Ans, SystemReturnCode)3.其他标签页的内容默认即可,保存并编译!4.在Job中调用该Routine,打开一个JOB,在JOB属性中选择Routine即可。5.Linux系统下编写Shell脚本,命名etl_log.sh,脚本代码如下:#*# 程序名: etl_log.sh# 执行环境: /home/dsadm/EDCETL/SH目录下# 程序描述: 调用存储过程将JOB日志信息写到数据库中# 输入参数: # 输出参数: # 编写人员: wangfei()# 创建日期: 2010.06.24# 代码版本: V1.0#*if $# -ne 6 then exit 2fi#参数文件、日志文件、临时文件存放路径PARAPATH=/home/dsadm/EDCETL/SH/PARA#参数文件ETLCFG=$PARAPATH/etl_configure.cfg#获取控制ETL运行的数据库服务器信息DBNAME=$(awk -F= /DBNAME_CTL/print $2 $ETLCFG)DBUSR=$(awk -F= /DBUSR_CTL/print $2 $ETLCFG)DBPWD=$(awk -F= /DBPWD_CTL/print $2 $ETLCFG)VALUE=sqlplus -s $DBUSR/$DBPWD$DBNAME END set pagesize 0 feedback off verify off heading off echo off
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗质量安全专项整治行动方案培训
- 教师招聘之《幼儿教师招聘》能力提升打印大全附答案详解(预热题)
- 2025年环境监测物联网在环境监测领域的跨学科研究与应用报告
- 合肥市税源管理困境剖析与优化路径探究
- 量子通信(第二版)课件 第21讲 量子信道编码(II)2025-0507-1635
- 乐至县至弘发展集团有限公司2025年度员工招聘调整部分岗位笔试备考及答案详解(名师系列)
- 企业盈利模式分析-以片仔癀为例
- 2025年时事政治热点题库含答案
- 教师招聘之《小学教师招聘》自测题库附完整答案详解【名师系列】
- 呼伦贝尔能源重化工工业园区谢尔塔拉产业区污水处理工程初步设计说明书及1套参考答案详解
- 2025中介房屋买卖合同范本
- 废铁拆除安全合同协议书
- 2025-2026学年人教版(简谱)(2024)小学音乐三年级上册教学计划及进度表
- 2025-2026学年人美版(2024)小学美术三年级上册(全册)教学设计(附目录P157)
- 2025年一级建造师《铁路实务》考试真题及答案解析
- 2025年GCP考试试题库含答案
- 2025浙江省知识产权研究与服务中心编外招聘12人考试备考试题及答案解析
- 医院检验科微生物进修汇报
- 医院门诊急救体系构建
- 2025年箱变考试题库
- 2025年G2电站锅炉司炉理论考试试题(1000题)含答案
评论
0/150
提交评论