우리는 100 개의 작업에 약 75 개의 분할 된 단계가 적용된 응용 프로그램을 보유하고 있습니다. 아웃 바운드 게이트웨이에 대한 우리의 구성은 다음과 같습니다JmsOutboundGateway : 수동 시작 및 중지
<int-jms:outbound-gateway
id="outbound-gateway_1"
auto-startup="true"
connection-factory="jmsConnectionFactory"
request-channel="jms.requests_1"
request-destination="jms.requestsQueue"
reply-channel="jms.reply_1"
reply-destination="jms.repliesQueue"
receive-timeout="${timeout}"
correlation-key="JMSCorrelationID" >
<int-jms:reply-listener receive-timeout="1000"/>
</int-jms:outbound-gateway>
때 자동 시작 = "true"로 우리는 각 아웃 바운드 게이트웨이에 대한 replyListener 스레드를 참조하십시오. 이 추가로드 및 자원 소비를 제거하기 위해 autostart = "false"로 변경하고 beforeStep 및 afterStep 메소드에서 게이트웨이를 시작 및 중지하는 분할 단계에 대한 단계 리스너를 추가했습니다. 서버 시작시 replyListener 스레드는 예상대로 존재하지 않습니다. 단계 실행 도중에 나타나지만 아웃 바운드 게이트웨이에서 중지하기 위해 호출 한 후에는 제거되지 않습니다 (장기간 기다린 후에도 제거됨).
replyListener를 정리하려면 다른 것이 필요합니까?
이러한 스레드가 아직 있는지 어떻게 알 수 있습니까? 스프링 통합의 어떤 버전을 사용합니까? 감사합니다. –