捕获camel交换数据到数据库

时间:2017-06-08 01:18:37

标签: apache-camel jbossfuse

您如何建议Camel在路径中定义要保存以供审核的事物的键/值表达式,并将它们拾取并透明地写入数据库?

即。该路由包含一个或一组表达式,用于保存以供审计,但不知道它实际上如何被拾取并写入数据库。

这就像Mule的审核功能,您可以在Mule XML中放置<flow>个元素,并定义表达式以保存到Mule的DB进行跟踪。

我已经看过拦截器,事件通知器,跟踪器,WireTaps,MDC记录 - 我确信答案在于这些元素中的一个或组合,但对我来说并不清楚。

我使用Mule审核XML的示例作为比较文档:

<flow name="bizFlow">
    <tracking:custom-event event-name="Retrieved Employee" doc:name="Custom Business Event">
        <tracking:meta-data key="Employee ID" value="#[payload['ID']]"/>
        <tracking:meta-data key="Employee Email" value="#[payload['Email']]"/>
        <tracking:meta-data key="Employee Git ID" value="#[payload['GITHUB_ID']]"/>
    </tracking:custom-event>
</flow>

非常感谢

1 个答案:

答案 0 :(得分:0)

对于审核,我使用wireTap将交换发送到特殊audit route,我在那里执行审核所需的操作。实际上不是DB而是JMS队列,但没关系。

只有一个限制:审核的任何内容都不能在wireTap之后通过主路由(并行运行)进行更改,因此我将wireTap之前的审核数据克隆到特殊的Exchange属性中用于审计路线。