在以下情况下,您能帮我吗?
Q1。我正在使用来自ActiveMQ的消息,并将已使用的消息插入数据库表中。由于某种原因,如果数据库关闭,我将丢失该消息。如何防止邮件消失而不丢失?
Q2。仅在目标数据库启动并运行时,我才需要使用队列中的消息。
我创建了一个Java Bean代码来检查数据库是否已启动并正在运行。但是我被困住了,无法实现这一目标。请提供任何帮助。
仅在数据库启动并运行时才使用队列中的消息。
答案 0 :(得分:0)
Q1:您可以尝试使用cErrorHandler组件:它将允许您捕获流中发生的错误,将其重定向到另一条路线(使用direct:myRoute作为deadLetter,然后必须以一个名为myRoute的cDirect。例如,您可以将邮件重定向到一个文件夹或另一个activeMQ队列。
Q2:我不知道如何使用此Java Bean,如果将其放置在cJMS之前,Talend会将cJMS视为生产者组件,而不是消费者。
答案 1 :(得分:0)
您可以在cJMS之前使用cTalend作业,并在cTalendJob内创建数据库连接,然后将返回代码传递到talend作业之外,并检查路由是否为200,然后重定向到cJMS流,否则不进行任何操作。