啟動規格屬性

連線能力 > 容器 > 資源配接器 > 啟動規格屬性

啟動規格 (Activation Spec) 用於配置訊息傳遞至 MDB。ejb-jar.xml 部署描述檔需要在元素內包含一個元素,如下所示:

<activation-config>
    <activation-config-property>
       <activation-config-property-name>destination</activation-config-property-name>
       <activation-config-property-value>queue.testQueue</activation-config-property-value>
    </activation-config-property>
    <activation-config-property>
       <activation-config-property-name>destinationType</activation-config-property-name>
       <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
    </activation-config-property>
</activation-config>

這裡,destination 的值是所需目的地的實際名稱。destinationType 的值是定義目的地類型的類別名稱。它應該是 javax.jms.Queue 或 javax.jms.Topic。
  可配置的啟動規格屬性如下:

屬性名稱 必要 預設值 描述
acknowledgeMode 自動確認 要使用的 JMS 確認模式。有效值為:Auto-acknowledge 或 Dups-ok-acknowledge
clientId 在資源配接器中設定 要使用的 JMS 客戶端 ID(僅在持久性主題時才真正需要)
destinationType 空值 目的地的類型:佇列或主題
destination 空值 目的地名稱(佇列或主題名稱)
enableBatch 用於啟用交易批次處理以提高效能
maxMessagesPerBatch 10 每個交易批次中的訊息數
maxMessagesPerSessions 10 這實際上是訂閱的預取大小。(是的,命名不佳)。
maxSessions 10 要使用的並行工作階段的最大數
messageSelector 空值 要在訂閱上使用的 JMS 訊息選擇器,以執行基於內容的路由篩選訊息
noLocal 僅適用於主題訂閱;表示是否應將本地發佈的訊息包含在訂閱中
password 在資源配接器中設定 JMS 連線的密碼
subscriptionDurability 非持久 是否需要持久性(主題)訂閱。有效值為:Durable 或 NonDurable
subscriptionName 空值 持久訂閱者的名稱。僅適用於持久主題,並與 clientID 組合使用以唯一識別持久主題訂閱
userName 在資源配接器中設定 JMS 連線的使用者
useRAManagedTransaction 通常,資源配接器將訊息傳遞到由容器管理的端點。通常,此容器希望控制傳入訊息正在傳遞的交易。但有時,您想要傳遞到一個較簡單的容器系統,該系統不會控制傳入的交易。在這種情況下,如果將 useRAManagedTransaction 設定為 true,則如果 MessageListener 未產生任何例外,則資源配接器將提交交易,如果拋出例外,則會回滾交易。
initialRedeliveryDelay 1000 重新傳遞開始前的延遲。也可以在 ResourceAdapter 上配置
maximumRedeliveries 5 最大重新傳遞次數,或 -1 表示不限制最大次數。也可以在 ResourceAdapter 上配置
redeliveryBackOffMultiplier 5 如果啟用指數退避,則要使用的乘數。也可以在 ResourceAdapter 上配置
redeliveryUseExponentialBackOff 啟用指數退避。也可以在 ResourceAdapter 上配置
useJndi 當為 true 時,將目的地作為 jndi 名稱使用
最大化 MDB 的輸送量

如果要最大化 MDB 的輸送量,您應該將 maxSessions 設定為相當大的值以增加並行性。然後將 maxMessagesPerSessions 設定為較大的值(例如)1000。

這假設您有大量可用的訊息(例如,大於 maxSessions * maxMessagesPerSession)。否則,預取將最終使其他消費者陷入飢餓

因此,如果您沒有那麼多可用的訊息,但它們可能需要一些時間來處理,那麼您可能需要設定較低的 maxMessagesPerSessions

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 項目標誌是 Apache 軟體基金會的商標。 版權所有 © 2024,Apache 軟體基金會。 根據 Apache License 2.0 授權。