将错误日志从我的 cTalendJob 检索到我的 ESB 路由

问题描述 投票:0回答:1

这是我的问题: 我有一个带有 cTalendJob 组件的 ESB 路由。 我收到来自 Cfile 的消息,并且我的作业(在我的 cTalendJob 中)正常工作。 我想从 ESB 路由(在 cProcessor 组件中)中的 cTalendJob 检索错误。

第 1 步:ETL 作业开始。
第 2 步:出现错误(例如,由于参数连接错误)
步骤 3:在我的 ESB 路由中,我的组件 cOnException start 和我的 cProcessor 组件(附加到他)检索 talend 错误日志。

此时我只有这个:

java.lang.RuntimeException: 作业执行失败 - 详情参见 标准错误。 在 接口.abc001_bdg_0_1.abc001_bdg$1.runSingleUseJob(abc001_bdg.java:2899)...

我希望 ESB 路由上的变量出现以下错误:

组件 tDBConnection_1 (abc001_bdg) 中出现异常 java.sql.SQLRecoverableException:侦听器拒绝与 出现以下错误:

ORA-12514,TNS:侦听器当前不知道请求的服务 在连接描述符中

如果你有想法,我会采纳。

提前致谢!

oracle-database logging etl talend esb
1个回答
0
投票

Talend 作业中有一个组件,您必须使用它来捕获异常。

因此,这是通过 cTalendJob 发送消息的路线:

enter image description here

我通过这样的标头访问异常消息(在 cProcessor 中):

System.out.println("=============================\nthis is the error : \n" + exchange.getIn().getHeader("message").toString() + "\n=====================");

要在 Talend 作业中工作,您必须使用两个特定组件:

  • t路线故障
  • tLogCatcher

tLogCatcher 捕获异常、tDie 和 tWarn。 tRouteFault 向您的中介路由发送一条消息并将其标记为错误。

所以在你的情况下,你的工作应该是这样的:

enter image description here

这是tLogCatcher组件发送的所有信息:

下面是 tRouteFault 的配置(可以只保留你需要的,message 栏包含错误): enter image description here

在这种情况下,我有输出:

=============================
this is the error : 
java.sql.SQLException:ORA-17868: Hôte inconnu spécifié.: Hôte inconnu (test)
https://docs.oracle.com/error-help/db/ora-17868/
=============================

由 cProcessor 打印。

希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.