2014-04-12 8 views

답변

0

message-driven-channel-adapteracknowledge="transacted"을 설정하십시오.

0

이것은 소비자에서 생산자로의 트랜잭션 전파 문제 일뿐입니다. 아래의 추가 구성을 수행하면 쉽게 수정할 수 있습니다.

DefaultMessageListenerContainer을 사용하는 경우 sessionTransacted를 true로 설정하거나 외부 transactionManager를 지정하는 것이 좋습니다.

메시지 수신기 컨테이너를 구성하지 않았지만 대신 message-driven-channel-adapter을 사용하는 경우 acknowledge 속성을 transacted으로 설정해야합니다.

트랜잭션에 참여하는 아웃 바운드 어댑터를 구성하려면 true에 다음과 같이 JmsTemplate를 구성하고 sessionTransacted 속성을 설정해야합니다
<bean id="outboundJmsTemplate" class="org.springframework.jms.core.JmsTemplate"> 
    <property name="connectionFactory" ref="outboundCF" /> 
    <property name="defaultDestination" ref="outboundDestination" /> 
    <property name="sessionTransacted" value="true" /> 
</bean> 
<int-jms:outbound-channel-adapter channel="jmsOutChannel" jms-template="outboundJmsTemplate" /> 

은 당신의 문제를 해결하기를 바랍니다.