我正在使用独立的 Camel 框架,我想拥有交易路线。我检查了仅使用 .transacted() 不起作用,因为我在上下文中没有 PlatformTransactionManager。
你能指出我正确配置这个场景的方法吗?
我正在使用独立的 Camel 框架,我想拥有交易路线。我检查了仅使用 .transacted() 不起作用,因为我在上下文中没有 PlatformTransactionManager。
你能指出我正确配置这个场景的方法吗?
您需要告诉 Camel(.. 或者实际上是 Camel 用来处理事务的 Spring)您要使用哪个事务管理器。
事务管理器可以是基于您集成的资源(数据库或 JMS 系统)的单个资源事务管理器,也可以是能够在多个资源之间同步事务的分布式事务管理器,例如 JavaEE 服务器事务管理器或独立的事务管理器,例如如 Atomikos、bitronix、JBossTM 等。
如果您想要单一资源事务(非 XA),则此页面上的 JMS (ActiveMQ) 和 JDBC (Derby) 都有很好的配置示例。切换到其他 JMS/数据库产品应该很简单。
设置一个独立的 XA 事务管理器并不难,但配置会根据所涉及的组件而有很大不同。Camel in Action 一书中有一些例子,网上有很多关于该主题的博客/堆栈溢出帖子和文章。