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.Este conteúdo não está disponível no idioma selecionado.
9.3. Demarcation by UserTransaction
Overview Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
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 Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
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 Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
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.