이 콘텐츠는 선택한 언어로 제공되지 않습니다.

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());
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.
// Java
import javax.transaction.UserTransaction;
...
UserTransaction ut =
    (UserTransaction) camelContext.getRegistry().lookup(UserTransaction.class.getName());

try {
  ut.begin();
  ...
  // invoke transactional methods or endpoints
  ...
  ut.commit();
}
catch (Exception e) {
  ut.rollback();
}
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동