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

整數 

green0 yellow80 orange90 red98

可觸發記憶體資源狀態的記憶體用量百分比 (其中 resourceStategreenyellow orangered)

imq.resourceState .count

整數 

green5000 yellow500 orange50 red0

檢查記憶體是否已達到資源狀態臨界值之前,每個批次中可允許的最大內送訊息數目 (其中 resourceState greenyelloworange 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_OLDESTREMOVE_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,停用的訊息將會被捨棄。