2017-04-20 2 views
1

버려진 메시지를 계산하는 데 사용되는 폐기 채널이있는 애그리 게이터가 있습니다 (콘크리트 번호에 도달하면 작동을 시작합니다).스프링 통합 - 애그리 게이터의 만료 된 메시지 그룹이 3 번 다시 만료됩니다.

로그를 보면 메시지 그룹이 각 메시지 그룹에 대해 번 3 번 만료되었는데 그 이유를 알 수 없습니다.

예상되는 동작은 메시지가 만료되면 애그리 게이터에서 제거되어 경로에서 다시 소개되지 않는다는 것입니다.

<int:aggregator id="aggregatorByBatchAndSku" 
input-channel="productAggregatorChannel" 
output-channel="productAggregatedChannel" 
expire-groups-upon-completion="true" 
release-strategy="mainAggregatorReleaseStrategy" 
release-strategy-method="canRelease" 
correlation-strategy-expression="headers[${rip.headers.batchno.name}]+headers[${rip.headers.skuid.name}]" 
discard-channel="aggregatorDiscardChannel" 
send-partial-result-on-expiry="false" 
group-timeout="${rip.config.aggregator.group_timeout}" 
expire-groups-upon-timeout="true" 
/> 

답변

1

내가 그 근본 원인을 가지고 :

내 어 그리 게이터입니다.

애그리 게이터에 의해 사용 된 버려진 채널 후에 서비스 액티베이터가 메시지를 계산 한 다음 출력이 다른 채널로 이동하고 라우트가 거기에서 종료되었습니다.

DEBUG 모드를 활성화하면 해당 최종 채널에 연결된 소비자가 없기 때문에 MessageGroup이 다시 발송되었음을 알았습니다.


2017-04-20 12:12:08.987 DEBUG 15272 --- [sk-scheduler-10] .s.i.a.AbstractCorrelatingMessageHandler : The MessageGroup [ 666110005888011] is rescheduled by the reason: Dispatcher has no subscribers for channel 'application:test:-1.fakeChannel'.; nested exception is org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers 
2017-04-20 12:12:08.987 DEBUG 15272 --- [sk-scheduler-10] .s.i.a.AbstractCorrelatingMessageHandler : Schedule MessageGroup [ SimpleMessageGroup{groupId=666110005888011, messages=[GenericMessage [payload=..... 

따라서, 용액 터미네이터 요소는 임의의 값을 리턴하지 같은 ServiceActivator을 가지고 있었다.

+0

흠. 나는 그 상황을 좋아하지 않는다. 적어도 경고 아래에 기록되어야합니다. 이 문제에 관해서는 JIRA를 모으고 그 행동을 수정하십시오 –

+0

OK. 여기에 우리가 간다 : https://jira.spring.io/browse/INT-4259! –