java Apache Camel JDBC存储过程和事务处理
我正在尝试构建一个小型的、概念验证的、基于Camel的应用程序(在FuseESB上运行),它可能会取代我们现有的基于EJB的集成系统。 现在,我正试图找出使用apache camel处理以下场景的最佳方法:
- JMS文本消息进来了
- 我必须根据消息内容执行一系列数据库操作,调用主要存储的过程/函数
- 根据db调用获得的结果,我必须构造一条应答消息并将其发送到特定的jms队列李>
- 如果出现错误/异常,我希望使用死信通道处理机制李>
我可以构建简单的camel路由,在camel中处理错误和异常看起来也很容易,但我不知道如何使用camel-SQL组件(我知道JDBC组件不能是事务性客户机)将我的所有db调用作为单个事务的一部分。从我在网上发现的情况来看,Camel SQL组件不能用于执行存储过程——这是真的吗?如果是,我应该使用处理器还是简单的pojo类来执行jdbc调用?在使用pojo或处理器类型的情况下,事务如何处理?我将非常感谢任何指向描述如何处理这样一个用例的资源的指针
# 1 楼答案
我建议使用JavaBean来进行JDBC交互,因为您需要执行多个调用并使用存储过程。有时Java代码更容易
例如,Spring JdbcTemplate对JDK JDBC API有很好的抽象,使调用存储过程变得相当容易
另外,MyBatis还支持调用存储过程。 http://loianegroner.com/2011/03/ibatis-mybatis-working-with-stored-procedures/
还有骆驼mybatis成分