我們有一個應用程序,分佈在大約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>
當自動啓動=「真」,我們看到了每個出站網關replyListener線程。爲了消除這種額外的負載和資源消耗,我們更改爲autostart =「false」,併爲分區步驟添加了一個步驟偵聽器,以便在beforeStep和afterStep方法中啓動和停止網關。在服務器啓動時,replyListener線程不在預期的位置。它們在步驟執行期間出現,但在呼出後停止在出站網關上(即使等待長時間後)也不會被刪除。
清理replyListener是否需要其他東西?
你怎麼知道那些線程仍然存在?你使用哪個版本的Spring Integration?謝謝 –