刪除非使用中的目的地

功能 > 目的地功能 > 刪除非使用中的目的地

非使用中的目的地

「非使用中」的目的地是指在設定的時間段內,沒有待處理訊息且沒有消費者連線的目的地。

預設情況下,代理程式不會檢查非使用中的目的地。這是由以下選項的預設值控制的: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 ...

Apache, ActiveMQ, Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。版權所有 © 2024,Apache 軟體基金會。依據 Apache 授權 2.0 授權。