179.17. showed Consumption 활성화
일반적인 요구 사항은 트랜잭션의 대기열에서 사용한 다음 Camel 경로를 사용하여 메시지를 처리하는 것입니다. 이렇게 하려면 구성 요소/endpoint에서 다음 속성을 설정해야 합니다.
-
transacted
= true -
transactionManager
= Transsaction Manager - 일반적으로JmsTransactionManager
자세한 내용은 Transactional Client EIP 패턴을 참조하십시오.
JMS를 통한 트랜잭션 및 [요청 응답]
JMS를 통해 요청 Reply를 사용하는 경우 단일 트랜잭션을 사용할 수 없습니다. JMS는 커밋이 수행될 때까지 메시지를 보내지 않으므로 트랜잭션이 커밋될 때까지 서버 측에서 아무것도 수신하지 않습니다. 따라서 Request Reply 를 사용하려면 요청을 보낸 후 트랜잭션을 커밋한 다음 별도의 트랜잭션을 사용하여 응답을 수신해야 합니다.
이 문제를 해결하기 위해 JMS 구성 요소는 다양한 속성을 사용하여 단방향 메시징 및 요청 응답 메시징에 대한 트랜잭션 사용을 지정합니다.
Transact ed
속성은 InOnly 메시지 교환 패턴 (MEP) 에만 적용됩니다.
transactedInOut
속성은 InOut(Request Reply) 메시지 교환 패턴(MEP)에 적용됩니다.
요청 응답(InOut MEP)에 트랜잭션을 사용하려면 transactedInOut=true
를 설정해야 합니다.
Camel 2.10에서 사용 가능
구성 요소/endpoint에서 다음 속성을 사용하여 DMLC 거래 세션 API 를 활용할 수 있습니다.
-
transacted
= true -
lazyCreateTransactionManager
= false
이렇게 하면 구성된 TransactionManager 없이 로컬 트랜잭션을 사용할 때 cacheLevel 설정이 적용됩니다. TransactionManager가 구성되면 DMLC 수준에서 캐싱이 수행되지 않으며 풀링된 연결 팩토리를 사용해야 합니다. 이러한 종류의 설정에 대한 자세한 내용은 여기와 여기에서 참조하십시오.