1

骆驼路线是否可以参与休眠事务?在休眠事务的中间,我想使用 Camel 的文件组件创建一个文件。但是如果交易失败,我想删除创建的文件。
骆驼路线有没有办法知道休眠事务?

4

2 回答 2

1

路由确实可以通过hibernate参与事务。请注意,只有事务端点可以参与事务 - 如果需要在事务中覆盖多个资源,则需要使用一些符合 JTA 的事务管理器,例如 Java EE 服务器。即休眠事务管理器将只处理休眠bean(2.11 中的端点)等。

你当然可以在你的路由中定义一个错误处理程序,如果文件存在,它会删除它。但它不会是“事务性的”,因为没有回滚/提交的概念。您无法保证文件真的被删除。

于 2013-04-09T20:02:35.827 回答
1

您还可以使用完成来触发自定义逻辑 onFailure / onCompletion。然后,如果事务失败,您可以删除该文件。 http://camel.apache.org/oncompletion.html

但是错误处理程序也可以工作。

于 2013-04-10T11:49:05.820 回答