Talend ESB:当数据库端点正在运行时,如何仅从队列中消费消息?

时间:2019-05-22 12:34:59

标签: activemq talend esb

在以下情况下,您能帮我吗?

Q1。我正在使用来自ActiveMQ的消息,并将已使用的消息插入数据库表中。由于某种原因,如果数据库关闭,我将丢失该消息。如何防止邮件消失而不丢失?

Q2。仅在目标数据库启动并运行时,我才需要使用队列中的消息。

我创建了一个Java Bean代码来检查数据库是否已启动并正在运行。但是我被困住了,无法实现这一目标。请提供任何帮助。

仅在数据库启动并运行时才使用队列中的消息。enter image description here

2 个答案:

答案 0 :(得分:0)

Q1:您可以尝试使用cErrorHandler组件:它将允许您捕获流中发生的错误,将其重定向到另一条路线(使用direct:myRoute作为deadLetter,然后必须以一个名为myRoute的cDirect。例如,您可以将邮件重定向到一个文件夹或另一个activeMQ队列。

Q2:我不知道如何使用此Java Bean,如果将其放置在cJMS之前,Talend会将cJMS视为生产者组件,而不是消费者。

答案 1 :(得分:0)

您可以在cJMS之前使用cTalend作业,并在cTalendJob内创建数据库连接,然后将返回代码传递到talend作业之外,并检查路由是否为200,然后重定向到cJMS流,否则不进行任何操作。