Sun Java System Message Queue 3.7 UR1 管理指南

路由特性

表 14–2 列出與路由服務相關的代理程式特性。可配置以自動建立目標的特性列於表 14–3 中。

表 14–2 代理程式路由特性

特性 

類型 

預設 

說明 

imq.system.max_count [可與 imqcmd update bkr 指令一起使用]

整數 

-1

代理程式保留訊息的最大數目 

-1 值表示不限制訊息計數。

imq.system.max_size

字串 

-1

代理程式保留訊息的最大總容量 

此值可能會使用下列字尾,以位元組、千位元組或百萬位元組表示: 

    b:位元組


    k:千位元組 (1024 位元組)


    m:百萬位元組 (1024 × 1024 = 1,048,576 位元組)


     

無字尾的值表示以位元組為單位;-1 值表示不限制訊息容量。

     

範例:

    1600:1600 位元組


    1600b:1600 位元組


    16k:16 千位元組 (= 16,384 位元組)


    16m:16 百萬位元組 (= 16,777,216 位元組)


    -1:不限制


imq.message.max_size

字串 

70m

單一訊息內文的最大容量 

語法與 imq.system.max_size 相同 (請參閱前述內容)。

imq.message.expiration.interval

整數 

60

收回已過期訊息的時間間隔 (以秒為單位) 

imq.resourceState .threshold

整數 

green:0 yellow:80 orange:90 red:98

可觸發記憶體資源狀態的記憶體用量百分比 (其中 resourceState 為 green、yellow、 orange 或 red)

imq.resourceState .count

整數 

green:5000 yellow:500 orange:50 red:0

檢查記憶體是否已達到資源狀態臨界值之前,每個批次中可允許的最大內送訊息數目 (其中 resourceState 是 green、yellow、orange 或 red)

系統記憶體變得逐漸不足時,此限制會減少訊息產生器產生訊息的數量。 

imq.destination.DMQ.truncateBody

布林值 

false

儲存至停用的訊息佇列之前,是否先移除訊息內文? 

如果為 true,將只會儲存訊息標頭與特性資料。

imq.transaction.autorollback

布林值 

false

是否要自動回復在代理程式啟動時為 PREPARED 狀態的分散式作業事件? 

如果為 false,就必須使用指令公用程式 (imqcmd) 以手動確定或回復作業事件。

表 14–3 自動建立的目標之代理程式特性

特性 

類型 

預設 

說明 

imq.autocreate.queue [可與 imqcmd update bkr 指令一起使用] , [僅限佇列目標]

布林值 

true

允許自動建立佇列目標? 

imq.autocreate.topic [僅限主題目標]

布林值 

true

允許自動建立主題目標? 

imq.autocreate.destination.maxNumMsgs

整數 

100000

未使用訊息的最大數目 

-1 值表示不限制訊息數目。

imq.autocreate.destination.maxBytesPerMsg

字串 

10k

任何單一訊息的最大容量 (以位元組為單位) 

此值可能會使用下列字尾,以位元組、千位元組或百萬位元組表示: 

    b:位元組


    k:千位元組 (1024 位元組)


    m:百萬位元組 (1024 × 1024 = 1,048,576 位元組)


     

無字尾的值是以位元組表示;-1 值表示不限制訊息容量。

     

範例:

    1600:1600 位元組


    1600b:1600 位元組


    16k:16 千位元組 (= 16,384 位元組)


    16m:16 百萬位元組 (= 16,777,216 位元組)


    -1:不限制


imq.autocreate.destination.maxTotalMsgBytes

字串 

10m

未使用訊息的最大總記憶體容量 (以位元組為單位)

語法與 imq.autocreate.destination.maxBytesPerMsg 相同 (請參閱前述內容)。

imq.autocreate.destination.limitBehavior

字串 

REJECT_NEWEST

達到記憶體限制臨界值時的代理程式運作方式: 

    FLOW_CONTROL:減緩產生器速度


    REMOVE_OLDEST:捨棄最舊的訊息


    REMOVE_LOW_PRIORITY:根據訊息存在時間,捨棄優先權最低的訊息;不會對訊息產生用戶端傳送通知


    REJECT_NEWEST:拒絕最新的訊息;只有當訊息為永久性時,才通知訊息產生用戶端發生異常


     

如果值為 REMOVE_OLDEST 或 REMOVE_LOW_PRIORITY ,而且 imq.autocreate.destination.useDMQ 特性為 true,則超過限制的訊息就會移至停用的訊息佇列。

imq.autocreate.destination.maxNumProducers

整數 

100

目標的最大訊息產生器數目

達到限制時,將無法建立新的產生器。-1 值表示不限制產生器數目。

imq.autocreate.queue.maxNumActiveConsumers

整數 

1

在佇列目標的負載平衡傳送中,使用中訊息用戶的最大數目

-1 值表示不限制用戶數目。

imq.autocreate.queue.maxNumBackupConsumers

整數 

0

在佇列目標的負載平衡傳送中,備份訊息用戶的最大數目

-1 值表示不限制用戶數目。

imq.autocreate.queue.consumerFlowLimit

整數 

1000

單一批次中傳送給佇列用戶的最大訊息數目

在負載平衡佇列傳送中,此數目是開始進行負載平衡前,路由到使用中用戶的佇列訊息初始數目。目標用戶可以在連線上指定較低的值來置換這項限制。 

-1 值表示不限制訊息數目。

imq.autocreate.topic.consumerFlowLimit

整數 

1000

單一批次中傳送給主題用戶的最大訊息數目

-1 值表示不限制用戶數目。

imq.autocreate.destination.isLocalOnly

布林值 

false

僅限本機傳送? 

此特性僅適用於代理程式叢集,而且目標一經建立之後便無法變更。如果為 true則其他代理程式上不會重複目標,且限制目標僅會傳送訊息給本機用戶 (會連線至建立目標的代理程式)。

imq.autocreate.queue.localDeliveryPreferred

布林值 

false

偏好本機傳送? 

此特性僅適用於代理程式叢集中的負載平衡佇列傳送。如果為 true,只有當本機代理程式上沒有用戶時,才會將訊息傳送給遠端用戶;目標不可設定為僅限於本機傳送 (即 imq.autocreate.destination.isLocalOnly 必須為 false)。

imq.autocreate.destination.useDMQ

布林值 

true

要將停用的訊息傳送給停用的訊息佇列? 

如果為 false,停用的訊息將會被捨棄。