INFORMATICA 的元数据管理之二:运行状态信息查询
2015-04-13 11:32
197 查看
本项目里的两个哥们做的关于运行状态元数据的两个JOB挺酷的,最近一段时间运行状况良好,自己参考学习的同时以做日志记载,呵呵,为了节省笔墨,相关元数据表结构以及MAPPING设计之类不做介绍(如有疑问欢迎留言探讨),仅对思路做以梳理如下:
1. 通过WKF ID和TASK ID关联对应WKF,TAST,从而形成关于SESSION运行状态报表如下:
SELECT OPB_SUBJECT.SUBJ_NAME,
OPB_WFLOW_RUN.WORKFLOW_NAME,
OPB_TASK_INST_RUN.INSTANCE_NAME,
to_char(OPB_TASK_INST_RUN.START_TIME,'yyyy-mm-dd HH24:mi:ss') START_TIME,
to_char(OPB_TASK_INST_RUN.END_TIME,'yyyy-mm-dd HH24:mi:ss') END_TIME,
OPB_TASK_INST_RUN.RUN_ERR_MSG,
OPB_TASK_INST_RUN.TASK_NAME,
OPB_SWIDGINST_LOG.INSTANCE_NAME INSTANCE_NAME_LOG,
OPB_SWIDGINST_LOG.WIDGET_TYPE,
APPLIED_ROWS SUCCESSFUL_ROWS,
AFFECTED_ROWS SUCCESSFUL_AFFECTED_ROWS,
REJECTED_ROWS FAILED_ROWS,
REPLACE(LAST_ERR_MSG,Chr('44'),Chr('35')) LAST_ERROR
FROM INFREP_V8.OPB_TASK_INST_RUN OPB_TASK_INST_RUN, INFREP_V8.OPB_WFLOW_RUN OPB_WFLOW_RUN, INFREP_V8.OPB_SUBJECT OPB_SUBJECT, INFREP_V8.OPB_SWIDGINST_LOG OPB_SWIDGINST_LOG
WHERE OPB_SUBJECT.SUBJ_ID = OPB_TASK_INST_RUN.SUBJECT_ID
AND OPB_WFLOW_RUN.WORKFLOW_ID = OPB_TASK_INST_RUN.WORKFLOW_ID
AND OPB_WFLOW_RUN.WORKFLOW_RUN_ID = OPB_TASK_INST_RUN.WORKFLOW_RUN_ID
AND OPB_SWIDGINST_LOG.WORKFLOW_RUN_ID =
OPB_TASK_INST_RUN.WORKFLOW_RUN_ID
AND OPB_SWIDGINST_LOG.TASK_INSTANCE_ID = OPB_TASK_INST_RUN.INSTANCE_ID
AND OPB_SWIDGINST_LOG.WIDGET_TYPE IN (3, 2)
and trunc(OPB_TASK_INST_RUN.START_TIME) = trunc(SYSDATE-1,'DD')
该QUERY显示的是前一天的SESSION运行状况报表,通过该报表可以系统的监控JOB的运行状况。
2. 下面的QUERY是用来记录WKF的运行状况监控报表/
SELECT rep_workflows.server_name, rep_workflows.subject_area,
rep_workflows.workflow_name, rep_workflows.scheduler_name,
CASE
WHEN opb_schedule_logic.user_logic_type = 1
AND opb_schedule_logic.frequency_intervl = 1
THEN 'Daily Job'
WHEN ( opb_schedule_logic.user_logic_type = 1
AND opb_schedule_logic.frequency_intervl > 1
AND opb_schedule_logic.frequency_intervl < 8
)
THEN 'Weekly Job'
ELSE 'Monthly Job'
END job_type,
REPLACE (SUBSTR (rep_workflows.start_time,
-5,
5
),
'/',
':'
) schedule_time,
CASE
WHEN opb_wflow_run.run_err_code = 0 and opb_wflow_run.end_time is not null
THEN 'Completed'
WHEN opb_wflow_run.run_err_code = 0 and opb_wflow_run.end_time is null
THEN 'Running'
WHEN opb_wflow_run.run_err_code >= 1
THEN 'Failed'
ELSE 'Not Start'
END status,
opb_wflow_run.start_time, opb_wflow_run.end_time,
--rep_workflows.start_time,
opb_wflow_run.run_err_code
FROM rep_workflows LEFT JOIN opb_wflow_run
ON opb_wflow_run.workflow_id = rep_workflows.workflow_id
AND TRUNC (opb_wflow_run.start_time) = TRUNC (SYSDATE, 'DD')
JOIN opb_schedule_logic
ON opb_schedule_logic.scheduler_id = rep_workflows.scheduler_id
AND opb_schedule_logic.version_number IN (
SELECT MAX (l.version_number)
FROM opb_schedule_logic l
WHERE opb_schedule_logic.scheduler_id =l.scheduler_id)
WHERE rep_workflows.run_options > 1
ORDER BY 1, 2, 3
以上仅是基于SESSION和WKF级别的监控元数据利用QUERY,如果需要设为自动每天/每周生成报表需要添加源元数据表和SQLQUALIFER组件后(一般还会过滤掉成功的状态,用FILER组件)进入目标表
然后添加个MAILTAST把运行异常状态报告表每天以邮件方式发送。
1. 通过WKF ID和TASK ID关联对应WKF,TAST,从而形成关于SESSION运行状态报表如下:
SELECT OPB_SUBJECT.SUBJ_NAME,
OPB_WFLOW_RUN.WORKFLOW_NAME,
OPB_TASK_INST_RUN.INSTANCE_NAME,
to_char(OPB_TASK_INST_RUN.START_TIME,'yyyy-mm-dd HH24:mi:ss') START_TIME,
to_char(OPB_TASK_INST_RUN.END_TIME,'yyyy-mm-dd HH24:mi:ss') END_TIME,
OPB_TASK_INST_RUN.RUN_ERR_MSG,
OPB_TASK_INST_RUN.TASK_NAME,
OPB_SWIDGINST_LOG.INSTANCE_NAME INSTANCE_NAME_LOG,
OPB_SWIDGINST_LOG.WIDGET_TYPE,
APPLIED_ROWS SUCCESSFUL_ROWS,
AFFECTED_ROWS SUCCESSFUL_AFFECTED_ROWS,
REJECTED_ROWS FAILED_ROWS,
REPLACE(LAST_ERR_MSG,Chr('44'),Chr('35')) LAST_ERROR
FROM INFREP_V8.OPB_TASK_INST_RUN OPB_TASK_INST_RUN, INFREP_V8.OPB_WFLOW_RUN OPB_WFLOW_RUN, INFREP_V8.OPB_SUBJECT OPB_SUBJECT, INFREP_V8.OPB_SWIDGINST_LOG OPB_SWIDGINST_LOG
WHERE OPB_SUBJECT.SUBJ_ID = OPB_TASK_INST_RUN.SUBJECT_ID
AND OPB_WFLOW_RUN.WORKFLOW_ID = OPB_TASK_INST_RUN.WORKFLOW_ID
AND OPB_WFLOW_RUN.WORKFLOW_RUN_ID = OPB_TASK_INST_RUN.WORKFLOW_RUN_ID
AND OPB_SWIDGINST_LOG.WORKFLOW_RUN_ID =
OPB_TASK_INST_RUN.WORKFLOW_RUN_ID
AND OPB_SWIDGINST_LOG.TASK_INSTANCE_ID = OPB_TASK_INST_RUN.INSTANCE_ID
AND OPB_SWIDGINST_LOG.WIDGET_TYPE IN (3, 2)
and trunc(OPB_TASK_INST_RUN.START_TIME) = trunc(SYSDATE-1,'DD')
该QUERY显示的是前一天的SESSION运行状况报表,通过该报表可以系统的监控JOB的运行状况。
2. 下面的QUERY是用来记录WKF的运行状况监控报表/
SELECT rep_workflows.server_name, rep_workflows.subject_area,
rep_workflows.workflow_name, rep_workflows.scheduler_name,
CASE
WHEN opb_schedule_logic.user_logic_type = 1
AND opb_schedule_logic.frequency_intervl = 1
THEN 'Daily Job'
WHEN ( opb_schedule_logic.user_logic_type = 1
AND opb_schedule_logic.frequency_intervl > 1
AND opb_schedule_logic.frequency_intervl < 8
)
THEN 'Weekly Job'
ELSE 'Monthly Job'
END job_type,
REPLACE (SUBSTR (rep_workflows.start_time,
-5,
5
),
'/',
':'
) schedule_time,
CASE
WHEN opb_wflow_run.run_err_code = 0 and opb_wflow_run.end_time is not null
THEN 'Completed'
WHEN opb_wflow_run.run_err_code = 0 and opb_wflow_run.end_time is null
THEN 'Running'
WHEN opb_wflow_run.run_err_code >= 1
THEN 'Failed'
ELSE 'Not Start'
END status,
opb_wflow_run.start_time, opb_wflow_run.end_time,
--rep_workflows.start_time,
opb_wflow_run.run_err_code
FROM rep_workflows LEFT JOIN opb_wflow_run
ON opb_wflow_run.workflow_id = rep_workflows.workflow_id
AND TRUNC (opb_wflow_run.start_time) = TRUNC (SYSDATE, 'DD')
JOIN opb_schedule_logic
ON opb_schedule_logic.scheduler_id = rep_workflows.scheduler_id
AND opb_schedule_logic.version_number IN (
SELECT MAX (l.version_number)
FROM opb_schedule_logic l
WHERE opb_schedule_logic.scheduler_id =l.scheduler_id)
WHERE rep_workflows.run_options > 1
ORDER BY 1, 2, 3
以上仅是基于SESSION和WKF级别的监控元数据利用QUERY,如果需要设为自动每天/每周生成报表需要添加源元数据表和SQLQUALIFER组件后(一般还会过滤掉成功的状态,用FILER组件)进入目标表
然后添加个MAILTAST把运行异常状态报告表每天以邮件方式发送。
相关文章推荐
- 多线程在UI显示线程运行状态信息
- 软件运行异常,错误信息查询找原因
- 查看linux ssh服务信息及运行状态
- 我工作这几年(五)-- 在代码中加入一些关键统计信息来实时监控程序的运行状态
- linux 系统信息及运行状态监控
- FIX: 错误消息当您使用服务器端游标来运行 SQL Server 2005 中大型复杂查询: " " 错误 8623, 严重性 16, 状态 1: 查询处理器用尽了超出内部资源:::
- 查询系统和进程状态信息
- WMI技术介绍和应用——查询正在运行的进程信息
- 查看linux ssh服务信息及运行状态
- Linux 系统信息及运行状态监控
- Linux系统信息及运行状态监控
- ps 显示的运行状态信息
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- 【原创】关于公交运行信息无线采集、查询系统的构想
- Linux系统信息及运行状态监控
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- ubuntu 启用apache运行状态信息查看
- v9用于静态页查询登陆状态以及用户信息的ajax接口
- Linux系统信息及运行状态监控
- 查询目前运行状态-CPU等情况