代码之家  ›  专栏  ›  技术社区  ›  Daniel San

我如何知道哪个组件发生故障?

  •  1
  • Daniel San  · 技术社区  · 12 年前

    enter image description here

    使用 子作业出错 触发器,我想知道子作业中的哪个组件失败。我已经了解到,您可以检查每个组件的错误消息,并选择不为空的组件。但我觉得这种做法很糟糕。是否有任何变量存储失败组件的标识?

    1 回复  |  直到 12 年前
        1
  •  1
  •   Gabriele B    12 年前

    我可能错了,但恐怕没有。这是因为globalVar元素是组件范围的(即,它们由组件自身获取/设置),而不是子作业范围的(这意味着由Talend自身设置或其他)。当subjobError信号被触发时,将丢失来自tFileInputDelimited的所有基于组件的数据。出于这个设计原因,我认为如果不在globalMap搜索器中反复搜索错误字符串,就无法解决问题。

    或者,您可以使用tLogCatcher(它有一个“origin”列)来发现有问题的组件,并最终根据发生异常的组件路由到不同的可恢复子作业。实际上,这不是我太信任的设计,因为tLogCatcher是作业范围的,而OnSubjobError仅直接链接到特定的子作业。但它可以在简单的情况下工作

    enter image description here