首页 » 编程开发 » Informatica » 正文

Informatica中怎样强制杀掉Aborting状态停不掉的Workflow

问题描述:在Informatica管理中想要将一个正在运行中的workflow程序Aborting掉,在执行右键“aborting”之后,workflow的状态就一直停留在aborting的状态,一直停不下来,通过后台SQL语句查询:“SELECT * FROM Rep_Task_Inst_Run WHERE workflow_name=’接口名称’ AND subject_area=’接口所在文件夹’   AND to_char(start_time,’yyyymm’)=201601”,查询结果显示该接口下有几个session的end_time字段是为空的。

解决方法:

1、打开Wrokflow Monitor日志查看器,找到正在运行的workflow,在“task view”查看方式下,双击正在运行的mapping,你将会在下方看到这样一个窗口,如下图:

1

这样,获取到了正在执行的mapping中session的系统进程ID即PID。如果你双击mapping之后并没有出现上图的窗口,可以将Wrokflow Monitor顶部菜单中的VIEW–>Properties View勾选,就可以看到了。

2、点击上图中右上角的“Get Session Log”,可以将Session日志调出来查看,在Log弹出窗口,我们也可以很容易的找到一个PID,如下图(看箭头):

2

3、获取到pid,那么接下来就容易了,我们只需要在系统中杀掉这些进程,就可以将informatica调用的workflow停下来了。

在linux命令窗口执行命令:

ps -ef| grep PID

上面命令中的PID,就是步骤1和2中获取到的pid,我们可以在命令输出中轻易判断出改进程是否就是我们正在执行的workflow。如果确认,就可以接着执行下面的命令将它杀掉:

kill -9 PID

执行完之后,重新用“ps -ef| grep PID”命令查看是否已经杀掉,完了之后,我们可以在Wrokflow Monitor日志查看器中看到workflow已经被我们通过杀掉进程的方式强制杀掉了,workflow的状态已经变成Aborted,说明已经停下来了。当然,我们也可以再次执行sql语句:“SELECT * FROM Rep_Task_Inst_Run WHERE workflow_name=’接口名称’ AND subject_area=’接口所在文件夹’   AND to_char(start_time,’yyyymm’)=201601”,从结果中发现最开始end_time字段为空的几条记录,现在已经不为空了,它的值刚好就是我们强制杀掉进程的时间。
如果发现workflow还是没有完全停下来,那么肯定是有哪个PID你没有找到,只要把它找出来杀掉就OK了。

发表评论