activemq - Talend ESB:如何仅在数据库端点运行时使用来自队列的消息?
问题描述
您能帮我解决以下情况吗?
Q1。我正在使用来自 ActiveMQ 的消息并将使用的消息插入到数据库表中。出于某种原因,如果数据库已关闭,我将丢失消息。如何在不丢失消息的情况下阻止消息?
Q2。仅当目标数据库启动并运行时,我才必须使用队列中的消息。
我创建了一个 Java Bean 代码来检查数据库是否已启动并正在运行。但我被困住了,无法做到这一点。任何帮助将不胜感激,请。
仅当数据库启动并运行时才使用队列中的消息。
解决方案
Q1:您可以尝试使用 cErrorHandler 组件:它将允许您捕获流上发生的错误,将它们重定向到另一个路由(使用 direct:myRoute 作为 deadLetter,然后您必须配置以 cDirect 开头的路由命名myRoute。例如,您可以将消息重定向到文件夹或另一个 activeMQ 队列)。
Q2 : 我不知道你如何使用这个 java bean,如果你把它放在 cJMS 之前,Talend 会将 cJMS 视为生产者组件,而不是消费者。
推荐阅读
- angular - 如何使用 ContentChildren 和 QueryList 重新排序孩子
- c# - 双击datagridview行后如何在dateTimePicker中获取正确的日期时间格式而不解析
- sql - 优化了 SQL SERVER 中逐字反转输入字符串的函数的替代代码
- java - 从 Json 手动映射到 crnk 中的 DTO 子类之一
- linux - mdadm 上的失败事件
- objective-c - 创建私有 2D 浮点数组 - Objective C
- typescript - 表单验证 Angular 4 | 多字段验证 | 根据其他字段在空字段上设置错误
- c# - 显示时间线右侧的数据
- c# - C# 任务每 x 计数重复一次
- sql - 计算 SQL 中每一行的 MAX