3.3. Cryostat 트랜잭션 클라이언트 사용


Cryostat를 사용하는 경우 트랜잭션 관리자와 상호 작용하는 가장 많은 지원 대상 및 표준 방법은 Java Transaction API (JTA) 인터페이스 javax. Cryostat.UserTransaction 입니다. 표준 사용은 다음과 같습니다.

InitialContext context = new InitialContext();
UserTransaction ut = (UserTransaction) context.lookup("java:comp/UserTransaction");
ut.begin();

// Access transactional, JTA-aware resources such as database and/or message broker

ut.commit(); // or ut.rollback()

JNDI(Java Naming and Directory Interface)에서 UserTransaction 인스턴스를 얻는 것이 트랜잭션 클라이언트를 가져오는 한 가지 방법입니다. Cryostat 환경에서는 CDI(컨텍스트 및 종속성 주입)와 같이 트랜잭션 클라이언트에 액세스할 수 있습니다.

다음 그림은 typica Cryostat Camel 애플리케이션을 보여줍니다.

Cryostat 트랜잭션 API

이 그림은 Camel 코드와 애플리케이션 코드가 모두 액세스할 수 있음을 보여줍니다.

  • Spring TransactionTemplate 클래스를 사용하여 애플리케이션에서 또는 내부적으로 트랜잭션 인식 Camel 구성 요소를 통해 트랜잭션을 직접 위임하는 javax. Cryostat.UserTransaction 인스턴스입니다.
  • JDBC API를 직접 또는 예를 들어 Spring의 JdbcTemplate 을 사용하거나 camel-jdbc 구성 요소를 사용하여 데이터베이스입니다.
  • Spring의 JmsTemplate 클래스를 사용하거나 camel-jms 구성 요소를 사용하여 JMS API를 직접 통한 메시지 브로커입니다.

javax. Cryostat.UserTransaction 오브젝트를 사용하는 경우 트랜잭션 클라이언트에서만 직접 작업하기 때문에 사용 중인 실제 트랜잭션 관리자를 알 필요가 없습니다. ( 1.3절. “트랜잭션 클라이언트 정보” 참조) 내부적으로 Spring의 트랜잭션 기능을 사용하므로 Spring과 Camel이 다른 접근 방식을 취합니다.

Cryostat 애플리케이션

일반적인 Cryostat 시나리오에서는 애플리케이션이 Cryostat 애플리케이션 서버(일반적으로 WAR 또는 EAR 아카이브)로 배포됩니다. JNDI 또는 CDI를 통해 애플리케이션은 javax. Cryostat.UserTransaction 서비스의 인스턴스에 액세스할 수 있습니다. 그런 다음, 제거에서는 이 트랜잭션 클라이언트 인스턴스를 사용하여 트랜잭션을 분리합니다. 트랜잭션 내에서 애플리케이션은 JDBC 및/또는 JMS 액세스를 수행합니다.

Camel 구성 요소 및 애플리케이션 코드

이는 JMS/JDBC 작업을 수행하는 코드를 나타냅니다. Camel에는 JMS/JDBC 리소스에 액세스하는 자체 고급 방법이 있습니다. 애플리케이션 코드는 지정된 API를 직접 사용할 수 있습니다.

JMS 연결 Cryostat

javax.jms.ConnectionFactory 인터페이스이며 javax.jms.Connection 인스턴스를 가져온 다음 javax.jms.Session (또는 JMS 2.0의 javax.jms.JmsContext )을 가져오는 데 사용됩니다. 이는 애플리케이션에서 직접 사용하거나 내부적으로 org.springframework.jms.core.JmsTemplate 을 사용할 수 있는 Camel 구성 요소에서 간접적으로 사용할 수 있습니다. 애플리케이션 코드나 Camel 구성 요소에는 이 연결 팩토리에 대한 세부 정보가 필요하지 않습니다. 연결 팩토리는 애플리케이션 서버에서 구성됩니다. 이 구성은 Cryostat 서버에서 확인할 수 있습니다. Fuse와 같은 OSGi 서버는 비슷합니다. 시스템 관리자는 애플리케이션과 독립적으로 연결 팩토리를 구성합니다. 일반적으로 연결 팩토리에서는 풀링 기능을 구현합니다.

JDBC 데이터 소스

java.sql.Connection 의 인스턴스를 가져오는 데 사용되는 javax.sql.DataSource 인터페이스입니다. JMS와 마찬가지로 이 데이터 소스는 직접 또는 간접적으로 사용될 수 있습니다. 예를 들어 camel-sql 구성 요소는 내부적으로 org.springframework.jdbc.core.JdbcTemplate 클래스를 사용합니다. JMS와 마찬가지로 애플리케이션 코드나 Camel에는 이 데이터 소스에 대한 세부 정보가 필요하지 않습니다. 구성은 4장. Narayana 트랜잭션 관리자 구성 에 설명된 방법을 사용하여 애플리케이션 서버 또는 OSGi 서버 내부에서 수행됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.