第 16 章
管理物件屬性參照
本章提供管理物件屬性的參照資訊。包含下列各節:
連線工廠屬性
連線工廠物件的屬性分為幾個種類,在下列各節中有所介紹:
連線處理
表 16-1 列出了連線處理的連線工廠屬性。
表 16-1 連線處理的連線工廠屬性
|
屬性
|
類型
|
預設
|
說明
|
|
imqAddressList
|
字串
|
若存在,是現有的 Message Queue 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。
|
imqAddressList 屬性的值是以逗號分隔的字串,指定要連線的一個或多個訊息伺服器位址。每個位址的一般語法如下:
scheme://address
其中 scheme 可識別表 16-2 第一欄中顯示的其中一個定址機制,而 address 表示伺服器位址本身。指定位址的確切語法會因定址機制而異,如表格的最後一欄所示。
表 16-2 訊息伺服器定址機制
|
方案
|
服務
|
語法
|
說明
|
|
mq
|
jms 或 ssljms
|
[hostName][:portNumber][/serviceName]
|
動態指定 jms 或 ssljms 連線服務的連接埠。
位址清單項目可指定 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 顯示不同位址格式範例。
表 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 Message Service 規格」中所定義的某些標準訊息特性。
表 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 (一般)
|
覆寫優先層級的值 (0 至 9)
|
|
imqOverrideJMSHeadersToTemporaryDestinations
|
布林
|
false
|
要將覆寫套用至暫時目標?
|
目標屬性
表 16-9 列出可為目標管理物件設定的屬性。
表 16-9 目標屬性
|
屬性
|
類型
|
預設
|
說明
|
|
imqDestinationName
|
字串
|
Untitled_Destination_Object
|
實體目標名稱
目標名稱可能僅包含字母數字字元 (無空格),而且必須以字母字元或底線 (_) 或錢幣符號 ($) 開頭。它不會以 mq 字元開頭。
|
|
imqDestinationDescription
|
字串
|
無
|
目標的描述性字串
|
SOAP 端點屬性
表 16-10 列出用以配置端點 URL,以供使用簡單物件存取協定 (SOAP) 的應用程式使用;請參閱「Message Queue Developer's Guide for Java Clients」,以獲得更多資訊。
表 16-10 SOAP 端點屬性
|
屬性
|
類型
|
預設
|
說明
|
|
imqSOAPEndpointList
|
字串
|
無
|
一個或多個表示接收訊息之 SOAP 端點的 URL 清單,用空格相互分隔。
每個 URL 應該有一個可以接收並處理 SOAP 訊息的相關 Servlet。
範例︰
http://www.serv1/ http://www.serv2/
如果該清單指定多個 URL,則會向所有的 URL 廣播訊息。
|
|
imqEndpointName
|
字串
|
Untitled_Endpoint_Object
|
SOAP 端點名稱
|
|
imqEndpointDescription
|
字串
|
無
|
SOAP 端點的描述性字串
範例︰
My endpoints for broadcast
|