刪除非使用中的目的地
功能 > 目的地功能 > 刪除非使用中的目的地
非使用中的目的地
「非使用中」的目的地是指在設定的時間段內,沒有待處理訊息且沒有消費者連線的目的地。
預設情況下,代理程式不會檢查非使用中的目的地。這是由以下選項的預設值控制的:schedulePeriodForDestinationPurge="0"
和 gcInactiveDestinations="false"
。
但是,可以將代理程式配置為清除非使用中的目的地。為此,需要將特別配置的目的地策略條目與代理程式屬性結合使用:schedulePeriodForDestinationPurge > 0
。
範例
<broker xmlns="https://activemq.dev.org.tw/schema/core" schedulePeriodForDestinationPurge="10000">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/>
</policyEntries>
</policyMap>
</destinationPolicy>
</broker>
在這個範例中,代理程式將每 10
秒檢查一次非使用中的目的地,由 schedulePeriodForDestinationPurge="10000"
決定。當觸發目的地清除時,代理程式將刪除任何已為空超過 inactiveTimoutBeforeGC="30000"
毫秒(預設值:60000
毫秒),並且其對應的目的地策略條目已設定 gcInactiveDestinations="true"
的佇列。
當移除目的地時,代理程式會記錄類似以下訊息:
INFO Queue - TEST.QUEUE Inactive for longer than 30000 ms - removing ...