tOracleInput不会触发OnSubjobError
,只会触发OnComponentError
?
例如,如果View / Table不存在,则会在控制台中记录错误(参见下文),但OnSubjobError
不会被执行。
Exception in component tOracleInput_1
java.sql.SQLException: ORA-00942: table or view does not exist
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74) ….
但如果我使用OnComponentError
,则会正确处理错误。我在文档中找不到任何理由,所以这就是我在这里问的原因。
从图片中可以看出,我必须放置OnComponentError
个连接(红色绘制的线条),因为OnSubjobError
无法完成其工作。到目前为止,我无法解决问题。
答案 0 :(得分:2)
我只是捣乱了一下试图重现这一点,似乎因为错误的组件是查找而不是流程的主要部分然后它不会错误的子工作(它根本不会用它作为tMap的输入查找。
显然,使用OnComponentError
链接将正确调用错误进程。
可以让多个OnComponentError
流进入同一个组件,这样你就可以让它们全部指向相同的进程/子工作,而不必复制生成的子工作,然后单独维护它们 - 尽管这将是一个如果您希望单独使用它们并减少工作中的意大利面条流量,那么使用joblet的好人选。