178.17. Transacted Consumption 활성화

일반적인 요구 사항은 트랜잭션의 대기열에서 사용한 다음 Camel 경로를 사용하여 메시지를 처리하는 것입니다. 이렇게 하려면 구성 요소/endpoint에서 다음 속성을 설정해야 합니다.

  • transacted = true
  • transactionManager = Transsaction Manager - 일반적으로 JmsTransactionManager

자세한 내용은 트랜잭션 클라이언트 EIP 패턴을 참조하십시오.

JMS를 통한 트랜잭션 및 요청 [Request Reply]

JMS를 통해 Request Reply over를 사용할 때는 단일 트랜잭션을 사용할 수 없습니다. JMS는 커밋이 수행될 때까지 메시지를 보내지 않으므로 트랜잭션 커밋이 커밋될 때까지 서버 측에서 아무 것도 받지 않습니다. 따라서 Request Reply 를 사용하려면 요청을 보낸 후 트랜잭션을 커밋한 다음 별도의 트랜잭션을 사용하여 응답을 수신해야 합니다.

이 문제를 해결하기 위해 JMS 구성 요소에서는 서로 다른 속성을 사용하여 단방향 메시징 및 요청 응답 메시징에 대한 트랜잭션 사용을 지정합니다.

트랜잭션 된 속성 은 MEP(InOnly 메시지 교환 패턴) 에만 적용됩니다.

transactedInOut 속성은 MEP(InOut(Request Reply) 메시지 교환 패턴)에 적용됩니다.

Request Reply(Out MEP)에 대한 트랜잭션을 사용하려면 transactedInOut=true설정해야 합니다.

Camel 2.10에서 사용 가능

구성 요소/endpoint에서 다음 속성을 사용하여 DMLC 트랜잭션 세션 API 를 활용할 수 있습니다.

  • transacted = true
  • lazyCreateTransactionManager = false

이렇게 하면 구성된 TransactionManager 없이 로컬 트랜잭션을 사용할 때 cacheLevel 설정을 이행할 수 있다는 이점이 있습니다. TransactionManager가 구성되면 DMLC 수준에서 캐싱이 발생하지 않으며 풀링된 연결 팩토리를 사용할 필요가 있습니다. 이러한 종류의 설정에 대한 자세한 내용은 여기 및 여기 를 참조하십시오.