2

JMSTemplate을 사용하여 주제에 메시지를 게시하는 게시자/구독자 모델을 사용하고 있습니다. defaultmessagelistenercontainer를 사용하여 메시지를 구독하고 수신합니다.Setsessiontransacted가 Pub/Sub 모델을 사용하여 JMSTemplate 및 DefaultMessageListenerContainer에서 작동하는 방식

두 설정 모두에서 sessionTransacted를 true로 설정할 수 있음을 알고 있습니다. 하지만 넣으면 어떻게 될까요?

1) JMSTemplate setsessionTransacted 만 true입니까?

2) messagelistenercontainer setsessiontransacted true?

3) JMSTemplate과 messagelistenercontainer setsessiontransacted가 모두 true입니까?

메시지를 수신하고 필요한 작업을 수행하는 주제 및 구독자에게 보내는 메시지 측면에서이 세 가지의 차이점을 알고 싶습니다. 내가 이해하려고하는 핵심 질문은

세션을 지속하는 데 얼마나 오래 걸립니까?

메시지는 메시지를 수신하고

답변

0

거래가 별개로 필요한 작업을 수행 주제와 가입자에게 전송되는. 보낸 사람이 커밋 될 때까지 소비자는 메시지를받지 못합니다.

메시지를 소비하고 동일한 스레드에서 다른 사람을 보내면 둘 다 처리됩니다. 둘 다 동일한 변환에서 실행됩니다.

+0

그래서 jmsTemplate과 DMLC 트랜잭션은 분리되어 있습니다. – africandrogba

+0

그래서 jmsTemplate과 DMLC 트랜잭션은 분리되어 있습니다. 따라서 DMLC sessiontransaction을 true로 설정하면 onMessage() 메서드의 모든 코드가 트랜잭션 내에서 수행됩니다. onMessage()에서 예외가 발생하면 어떻게됩니까? 메시지가 내 청취자에게 재전송되고 실행이 다시 발생합니까? – africandrogba

+0

주제가 대기열이 아닙니다. – africandrogba