1

我正在尝试构建一个小型的、概念验证的、基于 Camel 的应用程序(在 FuseESB 上运行),它可能会取代我们现有的基于 EJB 的集成系统的一部分。现在,我正在尝试找出使用 apache camel 处理以下场景的最佳方法:

  1. JMS 短信进来
  2. 我必须根据消息内容执行一系列数据库操作,主要调用存储的程序/函数
  3. 从 db 调用获得的结果中,我必须构造一个回复消息并将其发送到特定的 jms 队列。
  4. 如果出现错误/异常,我想使用死信通道处理机制。

我可以构建简单的骆驼路线,在骆驼中处理错误和异常看起来也很容易,我不明白的是如何使用骆驼 SQL 组件(我知道 JDBC 组件不能成为事务客户端)将我所有的数据库调用作为一部分单笔交易。从我在网上找到的 Camel SQL 组件不能用于执行存储过程 - 是真的吗?如果是,我应该使用处理器还是简单的 pojo 类来执行我的 jdbc 调用?在使用 pojo 或处理器类型的情况下,事务如何处理?我非常感谢任何指向描述如何处理这种用例的资源的指针。

4

1 回答 1

1

我建议使用 Java Bean 来进行 JDBC 交互,因为您想要进行多次调用并使用存储过程。有时 Java 代码更容易。

例如,Spring JdbcTemplate 对 JDK JDBC API 有一个很好的抽象,并且使得调用存储过程变得相当容易。

替代然后 MyBatis 也支持调用存储过程。 http://loianegroner.com/2011/03/ibatis-mybatis-working-with-stored-procedures/

还有一个camel-mybatis 组件。

于 2011-12-21T10:30:08.723 回答