Sun Java System Message Queue 3.7 UR1 管理指南

連線工廠屬性

連線工廠物件的屬性分為幾個種類,在下列各節中有所介紹:

連線處理

表 16–1 列出連線處理的連線工廠屬性。

表 16–1 連線處理的連線工廠屬性

屬性 

類型 

預設 

說明 

imqAddressList

字串 

若存在,為現有的 Message QueueTM 3.0 位址;若不存在,則為表 16–2 中的第一個項目

代理程式位址的清單 

此清單由以逗號分隔的一個或多個代理程式位址組成。每個位址都會指定 (或表示) 主機名稱、連接埠號,以及用戶端可以連線的代理程式實例的連線服務。位址語法會因連線服務與連接埠指定方法而異;請參閱下面內容以取得詳細資訊。 

imqAddressListBehavior

字串 

PRIORITY

嘗試連線至代理程式位址的順序: 

    PRIORITY:位址清單中指定的順序


    RANDOM:隨機順序



備註 –

如果許多用戶端共用相同的連線工廠,請指定隨機連線順序,以免全都嘗試連線至相同的位址。


imqAddressListIterations

整數 

5

在位址清單上嘗試建立或重新建立連線的重複次數 

-1 值表示不限制重複次數。

imqPingInterval

整數 

30

測試用戶端與代理程式間之連線的時間間隔 (以秒為單位) 

0-1 值可停用有規律的連線測試。

imqReconnectEnabled

布林值 

false

嘗試重新建立中斷的連線? 

imqReconnectAttempts

整數 

0

移至位址清單中的下一個位址之前,嘗試連線 (或重新連線) 至每個位址的次數 

-1 值表示不限制嘗試連線的次數:會重複嘗試連線至第一個位址,直到成功為止。

imqReconnectInterval

長整數 

3000

嘗試重新連線的時間間隔 (以毫秒為單位) 

此值適用於連續嘗試一個指定的位址,以及連續依序嘗試清單中連續的位址。 


備註 –

過小的值可能會讓代理程式來不及回復;而過大的值則可能會導致令人無法忍受的延遲。


imqSSLIsHostTrusted

布林值 

true

信任代理程式所提出的任何憑證? 

若設為 false,Message Queue 用戶端執行階段將會驗證收到的所有憑證。若憑證的簽署者不在用戶端的信任清單存放區中,則驗證將會失敗。

若設為 true,將會略過憑證驗證。例如,使用自我簽署的憑證對軟體進行測試時,這樣設定很有用。

備註:若要使用憑證授權單位簽署的憑證,請將此屬性設定為 false

imqAddressList 屬性的值是以逗號分隔的字串,指定要連線的一個或多個代理程式位址。每個位址的一般語法如下:

   
scheme://address

其中 scheme表 16–2 第一欄中顯示的其中一個定址機制,而 address 為代理程式位址本身。指定位址的確切語法會因定址機制而異,如表格的最後一欄所示。

表 16–2 訊息代理程式定址機制

方案 

服務 

語法 

說明 

mq

jmsssljms

[hostName][:portNumber ][/serviceName]

動態指定 jmsssljms 連線服務的連接埠

位址清單項目可指定 Message Queue 連接埠對映器的主機名稱與連接埠號。連接埠對映器本身會動態指定連線使用的連接埠。 

預設值:

    hostName = localhost


    portNumber = 7676


    serviceName = jms


若為 ssljms 連線服務,則必須明確指定所有變數。

mqtcp

jms

hostName:portNumber /jms

使用 jms 連線服務連線至指定的連接埠

略過連接埠對映器,並直接與指定的主機名稱與連接埠號建立 TCP 連線。

mqssl

ssljms

hostName:portNumber /ssljms

使用 ssljms 連線服務連線至指定的連接埠

略過連接埠對映器,並直接與指定的主機名稱與連接埠號建立安全的 SSL 連線。

http

httpjms

http://hostName: portNumber/contextRoot /tunnel

如果多個代理程式實例使用相同的通道 Servlet,下面語法可連線至特定 (而非隨機選定) 代理程式實例: 

http://hostName: portNumber/contextRoot /tunnel?

    ServerName=hostName :instanceName


使用 httpjms 連線服務連線至指定的連接埠

在指定的 URL 與 Message Queue 通道 Servlet 建立 HTTP 連線。代理程式必須配置為存取 HTTP 通道 Servlet。

https

httpsjms

https://hostName: portNumber/contextRoot /tunnel

如果多個代理程式實例使用相同的通道 Servlet,下面語法可連線至特定 (而非隨機選定) 代理程式實例: 

https://hostName: portNumber/contextRoot /tunnel?

    ServerName=hostName :instanceName


使用 httpsjms 連線服務連線至指定的連接埠

在指定的 URL 建立與 Message Queue 通道 Servlet 的安全 HTTPS 連線。代理程式必須配置為存取 HTTPS 通道 Servlet。

表 16–3 訊息代理程式位址範例

服務 

代理程式主機 

連接埠 

範例位址 

未指定 

未指定 

未指定 

無位址 (mq://localHost:7676/jms)

未指定 

指定主機 

未指定 

myBkrHost (mq://myBkrHost:7676/jms)

未指定 

未指定 

指定連接埠對映器連接埠 

1012 (mq://localHost:1012/jms)

ssljms

本地主機 

標準連接埠對映器連接埠 

mq://localHost:7676/ssljms

ssljms

指定主機 

標準連接埠對映器連接埠 

mq://myBkrHost:7676/ssljms

ssljms

指定主機 

指定連接埠對映器連接埠 

mq://myBkrHost:1012/ssljms

jms

本地主機 

指定服務連接埠 

mqtcp://localhost:1032/jms

ssljms

指定主機 

指定服務連接埠 

mqssl://myBkrHost:1034/ssljms

httpjms

不適用 

不適用 

http://websrvr1:8085/imq/tunnel

httpsjms

不適用 

不適用 

https://websrvr2:8090/imq/tunnel

用戶端標識

表 16–4 列出用戶端標識的連線工廠屬性。

表 16–4 用戶端標識的連線工廠屬性

屬性 

類型 

預設 

說明 

imqDefaultUsername

字串 

guest

以代理程式進行認證時使用的預設使用者名稱 

imqDefaultPassword

字串 

guest

以代理程式進行認證時使用的預設密碼 

imqConfiguredClientID

字串 

null

管理配置的用戶端識別碼 

imqDisableSetClientID

布林值 

false

是否要使用setClientID方法,以防止用戶端變更用戶端識別碼?

可靠性與流量控制

表 16–5 列出可靠性與流量控制的連線工廠屬性。

表 16–5 可靠性與流量控制的連線工廠屬性

屬性 

類型 

預設 

說明 

imqAckTimeout

字串 

0

指定在丟出異常之前,等待代理程式確認的最長時間 (以毫秒為單位) 

0 值表示無逾時 (永遠等待)。


備註 –

有時過小的值會導致發生提早逾時的情況:例如,首次使用安全 (SSL) 連線向 LDAP 使用者儲存庫認證使用者時,可能需要超過 30 秒的時間。


imqConnectionFlowCount

整數 

100

度量批次中的有效負載訊息數 

超過此訊息數時,就會暫時停止傳送有效負載訊息至用戶端,而會傳送所有累積的控制訊息。依照用戶端執行階段的通知,重新繼續傳送有效負載訊息,直至計數再次到達指定數目為止。 

0 值可停用對訊息傳送進行度量,這可能會導致大量有效負載訊息流量阻斷 Message Queue 控制訊息。

imqConnectionFlowLimitEnabled

布林值 

false

要限制連線層級的訊息流量? 

imqConnectionFlowLimit

整數 

1000

每個連線可傳送和緩衝供使用的最大訊息數 

擱置的未使用有效負載訊息數 (受到由 imqConnectionFlowCount 控制之流量度量的管制) 超過此限制時,連線就會停止傳送訊息。只有當擱置的訊息低於限制時,才會重新繼續傳送。如此可避免用戶端因擱置訊息導致耗盡記憶體,而造成過度負載。

如果 imqConnectionFlowLimitEnabled false,則可忽略此屬性。

imqConsumerFlowLimit

整數 

100

每個用戶可傳送和緩衝供使用的最大訊息數 

該用戶擱置未使用的有效負載訊息數超過此限制時,就會停止將訊息傳送給指定的用戶。只有當該用戶的擱置訊息低於 imqConsumerFlowThreshold 指定的百分比時,才會重新繼續傳送。如此可改善多個用戶間的負載平衡,並防止任何用戶獨佔連線,以免讓使用相同連線的其他用戶苦等。

您可以為佇列自身的 consumerFlowLimit 屬性設定一個較小的值,以置換此限制 (請參閱第 15 章, 實體目標特性參照)。請注意,將訊息傳送給一個連線上所有用戶時,必須遵守 imqConnectionFlowLimit 所指定的整體限制。

imqConsumerFlowThreshold

整數 

50

在用戶端執行階段緩衝的每位用戶之訊息數,以 imqConsumerFlowLimit 百分比表示,當低於該值時,就可以重新繼續傳送訊息

佇列瀏覽器和伺服器階段作業

表 16–6 列出佇列瀏覽和伺服器階段作業的連線工廠屬性。

表 16–6 佇列瀏覽器和伺服器階段作業的連線工廠屬性

屬性 

類型 

預設 

說明 

imqQueueBrowserMaxMessagesPerRetrieve

整數 

1000

瀏覽佇列目標的內容時,一次可擷取的最大訊息數 


備註 –

此屬性不會影響所瀏覽的訊息總數,而只是影響將訊息分為資料塊以便傳送到用戶端執行階段的方式 (分為數目少但內容多的資料塊,或是分為數目多但內容少的資料塊)。用戶端應用程式一定會收到佇列中的所有訊息。變更該屬性的值可能會影響效能,但不會影響所擷取的資料總數。


imqQueueBrowserRetrieveTimeout

長整數 

60000

瀏覽佇列目標的內容時,在丟出異常之前,等待擷取訊息的最長時間 (以毫秒為單位) 

imqLoadMaxToServerSession

布林值 

true

要將最大訊息數載入伺服器階段作業? 

如果指定為 false,用戶端一次只載入一個訊息。

此屬性僅適用於 JMS 應用程式伺服器設備。

標準訊息特性

表 16–7 列出的連線工廠屬性,可控制 Message Queue 用戶端執行階段是否設定「Java 訊息服務規格」中所定義的某些標準訊息特性。

表 16–7 標準訊息特性的連線工廠屬性

特性 

類型 

預設 

說明 

imqSetJMSXUserID

布林值 

false

要為產生的訊息設定 JMSXUserID 特性 (傳送訊息的使用者身份識別)?

imqSetJMSXAppID

布林值 

false

要為產生的訊息設定 JMSXAppID 特性 (傳送訊息的應用程式身份識別)?

imqSetJMSXProducerTXID

布林值 

false

要為產生的訊息設定 JMSXProducerTXID 特性 (產生訊息的作業事件之作業事件識別碼)?

imqSetJMSXConsumerTXID

布林值 

false

要為使用的訊息設定 JMSXConsumerTXID 特性 (使用訊息的作業事件之作業事件識別碼)?

imqSetJMSXRcvTimestamp

布林值 

false

要為使用的訊息設定 JMSXRcvTimestamp 特性 (訊息傳送給用戶的時間)?

訊息標頭置換

表 16–8 列出用以置換 JMS 訊息標頭欄位的連線工廠屬性。

表 16–8 訊息標頭置換的連線工廠屬性

屬性 

類型 

預設 

說明 

imqOverrideJMSDeliveryMode

布林值 

false

允許置換用戶端設定的傳送模式? 

imqJMSDeliveryMode

整數 

2

置換傳送模式的值: 

1 非永久性模式

2 永久性模式

imqOverrideJMSExpiration

布林值 

false

允許置換用戶端設定的過期時間? 

imqJMSExpiration

長整數 

0

置換過期時間的值 (以毫秒為單位) 

0 值表示不限制過期時間 (訊息永不過期)。

imqOverrideJMSPriority

布林值 

false

允許置換用戶端設定的優先層級? 

imqJMSPriority

整數 

4 (一般)

置換優先權層級的值 (09)

imqOverrideJMSHeadersToTemporaryDestinations

布林值 

false

要將置換套用至暫時目標?