datastage routine示例---提取job错误信息录入到数据库

datastage routine示例---提取job错误信息录入到数据库

ID:9295871

大小:115.50 KB

页数:4页

时间:2018-04-27

datastage routine示例---提取job错误信息录入到数据库_第1页
datastage routine示例---提取job错误信息录入到数据库_第2页
datastage routine示例---提取job错误信息录入到数据库_第3页
datastage routine示例---提取job错误信息录入到数据库_第4页
资源描述:

《datastage routine示例---提取job错误信息录入到数据库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DatastageRoutine示例——使用Routine提取JOB错误信息录入数据库环境:RedHatLinuxAS4+DatastageEE7.5.2+Oracle10g##在此感谢一下金证科技的LiBin和WangJun,是他们带我学习Datastage的!目标:使用Routine将JOB运行后的错误信息录入数据库(暂时忽略警告信息)方案:ServerRoutine调用Shell脚本,Shell脚本调用存储过程,存储过程把传递的参数信息写入数据库表实现过程:1.创建ServerRoutine,命名DSJobLog,系统默认DSJ开头的Routine为内置(Built-in)Rou

2、tine,类型为Before/AfterSubroutine2.编写Routine的Code,代码及注释如下:***************************************************************************ROUTINE名称:DSJobLog                                                   **ROUTINE类型:ServerSubroutine                                      **ROUTINE功能:提取JOB运行后的错误日志并写入数据库

3、    **ROUTINE输入参数1:InputArg                                          **ROUTINE返回参数1:ErrorCode                                         **ROUTINE作者:wangfei(wangfei04403@msn.com)        **ROUTINE日期:20100623                                               **********************************************

4、***************************$INCLUDEDSINCLUDEJOBCONTROL.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信息

5、存储于动态数组Summary中(1为INFO,2为WARN,3为FATAL)  ifDSGetJobInfo(JobHandle,DSJ.JOBINTERIMSTATUS)=3then     Summary=DSGetLogSummary(JobHandle,DSJ.LOGFATAL,DSGetJobInfo(JobHandle,DSJ.JOBSTARTTIMESTAMP),                            DSGetJobInfo(JobHandle,DSJ.JOBLASTTIMESTAMP),10)*通过循环先取到错误事件的ID(EvtID),然后依据Evt

6、ID获得错误信息  *循环开始   FORI=1TO10       EvtID=Field(Summary,'',1)       ifEvtID=""then          exit       end              LogList=LogList:DSGetLogEntry(JobHandle,EvtID):"ZhongTu"   NEXTI   *循环结束  end*如果状态为失败,则产生错误日志*开始拼接shell命令的参数*Char(34)在VB中是双引号,这里必须添加双引号以便Shell脚本能够正确的把带单引号的参数传递给存储过程cmdstr=cm

7、dstr: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.JOBLASTTIMEST

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。