首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Apache Camel中嵌入的持久性解决方案,用于保存死信消息

Apache Camel中嵌入的持久性解决方案,用于保存死信消息
EN

Stack Overflow用户
提问于 2012-05-25 19:38:23
回答 1查看 2.2K关注 0票数 2

Camel API中有没有嵌入式持久化解决方案?我想保存我的死信消息。它可以通过DB或JMS队列来完成,但我希望在向客户发货时避免它。

我在“骆驼在行动”中读到了关于HawtDB的文章。但它似乎与聚合器弹性公网EIP紧密耦合。

稍后,我想创建一个关于所有死信消息的报告,并将其显示给客户端。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-25 20:48:25

您可以使用任何持久性组件来保存您的死信消息(HibernateJPAJDBCDB4O等)。对于大多数持久性组件,您不会保存消息本身,而是从消息中选择(元)数据(值得注意的例外是使用DB4O组件的情况)。

例如,如果要在消息中发送Hibernates实体,则可以使用Hibernate component

代码语言:javascript
代码运行次数:0
运行
复制
from("seda:deadMessageStore").
  setBody().groovy("new DeadMessageLog(request.headers, request.body) ").
  to("hibernate:com.foo.DeadMessageLog");
errorHandler(deadLetterChannel("seda:deadMessageStore"));

如果无法预测将向死信队列发送哪种类型的类,请考虑使用DB4O component。DB4O在这方面非常灵活,因为它允许您将任何Java对象存储在您的队列中(不需要显式映射,就像Hibernate或JPA那样)。

代码语言:javascript
代码运行次数:0
运行
复制
// store any Java object without transformations
errorHandler(deadLetterChannel("db4o:java.lang.Object"))

此外,创建嵌入式DB40容器也非常简单:

代码语言:javascript
代码运行次数:0
运行
复制
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), DB4OFILENAME);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10753762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档