Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.이 콘텐츠는 선택한 언어로 제공되지 않습니다.
9.3. Demarcation by UserTransaction
Overview 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
It is possible to demarcate a transaction by accessing the
UserTransaction
service directly and calling its begin()
, commit()
and rollback()
methods. But you should be careful to call these methods only when it is really necessary. Usually, in a Apache Camel application, a transaction would be started either by a transactional endpoint or by the transacted()
marker in a route, so that explicit invocations of UserTransaction
methods are not required.
Accessing UserTransaction from Apache Camel 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
In the case of Apache Camel applications deployed in an OSGi container, you can easily obtain a reference to the
UserTransaction
OSGi service by looking it up in the CamelContext
registry. For example, given the CamelContext
instance, camelContext
, you could obtain a UserTransaction
reference as follows:
// Java import javax.transaction.UserTransaction; ... UserTransaction ut = (UserTransaction) camelContext.getRegistry().lookup(UserTransaction.class.getName());
// Java
import javax.transaction.UserTransaction;
...
UserTransaction ut =
(UserTransaction) camelContext.getRegistry().lookup(UserTransaction.class.getName());
For more details of how the registry is integrated with OSGi, see Integration with Apache Camel.
Example with UserTransaction 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
The following example shows how to access a
UserTransaction
object and use it to demarcate a transaction, where it is assumed that this code is part of a Apache Camel application deployed inside an OSGi container.