activeMQ で非アクティブなキューをパージしようとしています
<amq:broker persistent="true" useJmx="true" schedulePeriodForDestinationPurge="1000">
<amq:destinationPolicy>
<amq:policyMap>
<amq:policyEntries>
<amq:policyEntry queue="queue.>" gcInactiveDestinations="true" inactiveTimoutBeforeGC="5000" />
</amq:policyEntries>
</amq:policyMap>
</amq:destinationPolicy>
私が読んだように、メッセージが0で、新しいプロデューサー/コンシューマーがない場合、キューは非アクティブです。
次のような送信プロセスに jmsTemplate を使用しています。
//Creates an org.springframework.jms.connection.CachingConnectionFactory
conn = jmsTemplate.getConnectionFactory().createConnection();
session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
...
jmsTemplate.convertAndSend(destinationQueue, messageDTO);
....
session.close();
conn.close();
convertAndSend メソッドが呼び出された時点で、プロデューサーとキューが作成されますが、送信が完了すると、プロデューサーはまだ生きています (jconsole は ProducerCount=1 を示します) が、セッションと接続を閉じてキューが削除されないようにします。
プロデューサーが削除されないのはなぜですか? cachingconnectingfactory の使用に影響がありますか?
ありがとう!