第 16 章
受管理物件屬性參照
這一章提供受管理物件屬性的參照資訊。它包含下面幾節:
目標特性
表 16-1 列出用來配置目標受管理物件的屬性。
表 16-1 目標受管理物件屬性
屬性名稱
|
說明
|
類型
|
預設
|
imqDestinationDescription
|
目標物件的說明。
|
字串
|
無
|
imqDestinationName
|
實體目標名稱。
|
字串
|
Untitled_Destination_Object
|
連線工廠屬性
這一節包含用來配置連線工廠受管理物件的屬性的參照資訊。屬性分類後分配到下面幾節:
表 16-2 是連線工廠受管理物件屬性的索引。第一欄按字母順序列出每個屬性,第二欄列出屬性類別,第三欄為交叉參照屬性說明表。
連線處理
表 16-2 列出連線處理的連線工廠屬性。
表 16-2 連線工廠屬性:連線處理
屬性名稱
|
說明
|
類型
|
預設
|
imqAddressList
|
一或多個用逗號分隔的訊息伺服器位址清單。有幾個特定定址方案可用來指定您想使用的連線服務和連接埠之方法。
如需如何指定位址清單和清單項目說明範例的詳細資訊,請參閱 imqAddressList 屬性值的語法。
|
字串
|
現有的 Message Queue 3.0 位址 (若有),若無,則為表 16-3 的第一個項目。
|
imqAddressListBehavior
|
這個字串指定連線時,按照 imqAddressList 屬性中的位址次序 (PRIORITY) 或按照隨機次序 (RANDOM)。如果您有許多用戶端使用相同的連線工廠以嘗試連線,則可以使用隨機次序以防止這些用戶端全部連線至相同的位址。
|
字串
|
PRIORITY
|
imqAddressListIterations
|
用戶端執行階段透過 imqAddressList 建立或重新建立連線的最大次數。值 -1表示嘗試次數不受限制。
|
整數
|
5
|
imqPingInterval
|
用戶端執行階段測試應用程式和代理程式之間連線的頻率 (以秒為單位)。
值 -1 或 0 (零) 表示用戶端執行階段不定期測試連線。
|
整數
|
30
|
imqReconnectEnabled
|
這個布林值指定連線中斷時,用戶端執行階段是否重新連線到訊息伺服器 (或 imqAddressList 中的位址清單)。
|
布林
|
false
|
imqReconnectAttempts
|
用戶端執行階段嘗試連線 (或重新連線) imqAddressList 中每個位址的最大次數,到達這個次數後就接著處理清單中的下一個位址。值 -1 表示不限制嘗試重新連線的次數 (用戶端執行階段一直嘗試,到連線成功為止)。
|
整數
|
0 (零)
|
imqReconnectInterval
|
嘗試重新連線的間隔 (以毫秒為單位)。此值套用於嘗試連線 imqAddressList 中的每個位址和清單中連續的位址。如果此值太小,代理程式回復時間會不足。如果此值太大,重新連線的延遲可能令人無法忍受。
|
長
|
3000 (毫秒)
|
imqSSLIsHostTrusted
|
這個布林值指定用戶端能否接受代理程式自身簽名的憑證。若要使用認證機構簽名的憑證,請將此值設定為 false。
|
布林
|
true
|
imqAddressList 屬性值的語法
imqbrokerlist 值中的每個位址,對應用戶端執行階段可以連線的代理程式實例。
請為每個連線服務指定不同的代理程式位址。一般語法如下:
scheme://address_syntax
若要為清單新增位址,請新增一個逗點,再新增一個位址。清單可以有很多項目,格式如下:
scheme://address_syntax,scheme://address_syntax...
scheme 變數指定您使用的下列一種定址類型,表 16-3 中有詳細說明:mq、mqtcp、mqssl、http 或 https。address_syntax 變數表示方案特定的代理程式位址。表 16-3 列出定址方案。第一欄包含定址方案名稱,第二欄顯示此名稱的相關連線服務,第三欄是說明,第四欄提供適用語法。
表 16-3 imqAddressList 屬性的定址方案
方案
|
連線服務
|
說明
|
語法
|
mq
|
ms ssljms
|
指定 jms 或 ssljms 服務使用的動態連接埠。
您可以指定連接埠對映器主機和連接埠。連接埠對映器會動態指定連線用的連接埠。
|
[hostName][:port][/serviceName]
jms 連線服務可以套用下列預設值:
hostName = localhost port = 7676 serviceName = jms
ssljms 連線服務沒有預設值。您必須指定所有變數。
|
mqtcp
|
jms
|
指定連接埠號碼並且使用 jms 連線服務。
Message Queue 用戶端執行階段與指定的主機和連接埠進行 tcp 連線,以建立連線。
|
hostName:port/jms
|
mqssl
|
ssljms
|
指定連接埠號碼並且使用 ssljms 連線服務。
Message Queue 用戶端執行階段與指定的主機和連接埠進行安全的 ssl 連線,以建立連線。
|
port/ssljms
|
http
|
httpjms
|
使用 httpjms 連線服務。
用戶端執行階段在指定的 URL,與 Message Queue 通道 Servlet 進行 HTTP 連線。您必須配置代理程式才能存取 HTTP 通道 Servlet。
|
http://hostName:port/contextRoot/tunnel
如果多個代理程式實例使用相同的通道 Servlet,下面是連線到特定 (而非隨機選定) 代理程式實例的語法:
http://hostName:port/contextRoot /tunnel?ServerName=hostName:instanceName
|
https
|
httpsjms
|
使用 httpsjms 連線服務。
Message Queue 用戶端執行階段與指定的 Message Queue 通道 Servlet URL 進行安全的 HTTPS 連線。您必須配置代理程式才能存取 HTTPS 通道 Servlet。
|
https://hostName:port/contextRoot/tunnel
如果多個代理程式實例使用相同的通道 Servlet,下面是連線到特定 (而非隨機選定) 代理程式實例的語法:
https://hostName:port/contextRoot/ tunnel?ServerName=hostName:instanceName
|
表 16-4 包含定址格式範例。第一欄是連線服務名稱。第二欄指定範例中的主機是本地主機、未指定主機、指定主機或不適用。第三欄指定範例中的連接埠是指定、未指定或不適用,第四欄是範例。
表 16-4 訊息伺服器位址範例
連線服務
|
代理程式主機
|
連接埠
|
範例位址
|
未指定
|
本地主機
|
未指定
|
預設 (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-5 列出用戶端標識的連線工廠屬性。
表 16-5 連線工廠屬性:用戶端標識
屬性名稱
|
說明
|
類型
|
預設
|
imqDefaultUsername
|
由代理程式認證的預設使用者名稱。
|
字串
|
guest
|
imqDefaultPassword
|
由代理程式認證的預設密碼。
|
字串
|
guest
|
imqConfiguredClientID
|
以管理級別配置的用戶端 ID。
|
字串
|
null
|
imqDisableSetClientID
|
這個布林值指定是否在 JMS API 中使用 setClientID() 方法,防止用戶端變更用戶端 ID。
|
布林
|
false
|
訊息標頭覆寫
表 16-6 列出用來覆寫 JMS 訊息標頭欄位的連線工廠屬性。
表 16-6 連線工廠屬性:訊息標頭覆寫
屬性名稱
|
說明
|
類型
|
預設
|
imqOverrideJMSDeliveryMode
|
這個布林值指定能否覆寫用戶端設定的 JMSDeliveryMode 欄位。
|
布林
|
false
|
imqJMSDeliveryMode
|
JMSDeliveryMode 的覆寫值。值為 1 (非永久性) 和 2 (永久性)。
|
整數
|
2
|
imqOverrideJMSExpiration
|
這個布林值指定能否覆寫用戶端設定的 JMSExpiration 欄位。
|
布林
|
false
|
imqJMSExpiration
|
JMSExpiration 的覆寫值 (以毫秒為單位)。
|
長
|
0 (不過期)
|
imqOverrideJMSPriority
|
這個布林值指定能否覆寫用戶端設定的 JMSPriority 欄位。
|
布林
|
false
|
imqJMSPriority
|
JMSPriority 的覆寫值 (整數 0 到 9)。
|
整數
|
4 (一般)
|
imqOverrideJMSHeadersTo TemporaryDestinations
|
這個布林值指定臨時目標是否套用覆寫。
|
布林
|
false
|
穩定性與流量控制
表 16-7 列出用來配置穩定性與流量控制的連線工廠屬性。
表 16-7 連線工廠屬性:穩定性與流量控制
屬性名稱
|
說明
|
類型
|
預設
|
imqAckTimeout
|
指定在拋出異常之前,用戶端執行階段等待代理程式回應的最長時間 (以毫秒為單位)。值 0 表示無逾時,用戶端執行階段會一直等待。
有時此值太小會導致用戶端執行階段逾時。例如,代理程式初次使用 LDAP 使用者儲存庫和安全 (SSL) 連線來認證時,可能需要費時 30 秒鐘以上。
|
字串
|
0
|
imqAckOnProduce
|
這個字串指定代理程式如何回應生產型用戶端的訊息。
如果這個屬性設定為 true,代理程式會回應所有從生產型用戶端接收到的 JMS 訊息 (永久性和非永久性的)。等待回應時,生產型用戶端執行緒會進行鎖定。
如果未指定這個屬性,則代理程式只回應永久性訊息。等待回應時,生產型用戶端執行緒會進行鎖定。
|
字串
|
未指定
|
imqConnectionFlowCount
|
計數批次中的最大 JMS 訊息數。當此數量的 JMS 訊息傳送至用戶端執行階段時,傳送將臨時暫停,並允許傳送任何被阻擋的控制訊息。依照用戶端執行階段的通知,恢復傳送有效負載訊息,直至計數再次到達指定數目。
如果將計數設定為 0,則在計數批次中對 JMS 訊息數量不做限制。非零設定允許用戶端執行階段計算訊息流量,以免因為 JMS 訊息傳送過量而鎖定 Message Queue 控制訊息。
|
整數
|
100
|
imqConnectionFlowLimit Enabled
|
這個布林值指定是否使用 imqConnectionFlowLimit 值來限制連線層級的訊息流量。
|
布林
|
false
|
imqConnectionFlowLimit
|
可透過連線傳送的,以及可以在用戶端執行階段緩衝待用的最大訊息數量。但是請注意,除非啟用 imqConnectionFlowIsLimited,否則不檢查這項限制。
當傳送至用戶端執行階段的 JMS 訊息數量 (依照由 imqConnectionFlowCount 所控制的流量測量) 超過了該限制時,訊息傳送就會停止。僅當未使用的訊息數目低於此屬性設定的值時,才恢復傳送訊息。
此限制對於耗費大量時間處理訊息的使用中用戶端,可使其免於受擱置訊息所苦,因為這些訊息可能會導致系統記憶體不足。
|
整數
|
1000
|
imqConsumerFlowLimit
|
每位用戶可透過連線傳送的,以及可以在用戶端執行階段緩衝待用的最大訊息數量。這項限制可以在多用戶佇列傳送情況中,改善用戶之間的負載平衡 (沒有用戶會收到過多的訊息數)。代理程式上設定佇列的 consumerFlowLimit 屬性較小值,可以覆寫這項限制 (請參閱Message Queue 管理指南中的目標屬性資訊)。
這項限制還可以防止用戶霸佔連線讓別人苦等。
如果傳送至用戶端執行階段的 JMS 訊息數超過此限制時,則會停止傳送訊息給該用戶。只有在傳送給該用戶的未使用訊息數低於此 imqConsumerFlowThreshold 之設定值時,才恢復傳送訊息。
請注意若連線上所有用戶的緩衝訊息總數超過 imqConnectionFlowLimit,連線上的訊息傳送會停止,直到訊息總數低於連線限制為止)。
|
整數
|
100
|
imqConsumerFlow Threshold
|
用戶端執行階段緩衝的每位用戶之訊息數 (imqConsumerFlowLimit 的百分比) 低於該值時,便會繼續傳送訊息給用戶。
|
整數
|
50
|
佇列瀏覽器運作方式和伺服器階段作業
表 16-8 說明會影響用戶端佇列瀏覽的屬性。
表 16-8 連線工廠屬性:佇列瀏覽器運作方式
屬性名稱
|
說明
|
類型
|
預設
|
imqQueueBrowserMax MessagesPerRetrieve
|
瀏覽佇列目標內容時,用戶端執行階段一次將擷取的最大訊息數量。
|
整數
|
1000
|
imqQueueBrowserRetrieveTimeout
|
瀏覽佇列目標內容時,用戶端執行階段擷取訊息所需等待的最長時間 (以毫秒為單位),一旦逾時,立即拋出異常。
|
長
|
60000
|
imqLoadMaxToServerSession
|
JMS 應用程式伺服器設備的這個布林值指定 Message Queue 連線用戶是否應該將訊息最大數目 maxMessages 上載到 ServerSession 階段作業。如果指定 false,用戶端一次只載入一個訊息。
|
|
true
|
JMS 定義的特性支援
JMS 定義的特性是 JMS 保留的名稱,JMS 提供者可以選擇支援加強用戶端程式設計功能。表 16-9 說明 Message Queue 支援的 JMS 定義特性。
表 16-9 連線工廠屬性:JMS 定義的特性支援
特性名稱
|
說明
|
類型
|
預設
|
imqSetJMSXUserID
|
這個布林值指定是否在產生的訊息上設定 JMS 定義的特性 JMSXUserID (傳送訊息的使用者的識別)。
|
布林
|
false
|
imqSetJMSXAppID
|
這個布林值指定是否在產生的訊息上設定 JMS 定義的特性 JMSXAppID (傳送訊息的應用程式的識別)。
|
布林
|
false
|
imqSetJMSXProducerTXID
|
這個布林值指定是否在產生的訊息上設定 JMS 定義的特性 JMSXProducerTXID (產生了此訊息的作業事件識別碼)。
|
布林
|
false
|
imqSetJMSXConsumerTXID
|
這個布林值指定是否在使用的訊息上設定 JMS 定義的特性 JMSXConsumerTXID (使用了此訊息的作業事件識別碼)。
|
布林
|
false
|
imqSetJMSXRcvTimestamp
|
這個布林值指定是否在使用的訊息上設定 JMS 定義的特性 JMSXRcvTimestamp (訊息傳送至用戶的時間)。
|
布林
|
false
|
SOAP 端點屬性
表 16-10 列出用來配置應用程式 (使用 SOAP) 端點 URL 的屬性。如需這些使用 SOAP 應用程式的詳細資訊,請參閱Message Queue Developer’s Guide for JavaClients 。
表 16-10 SOAP 端點屬性
屬性名稱
|
說明
|
類型
|
預設
|
imqSOAPEndpointList
|
一或多個用空格分隔的 URL 清單,URL 代表訊息要傳往的 SOAP 端點。
如果指定多個 URL,則會向清單中的所有 URL 廣播訊息。每個 URL 應該有一個可以接收並處理 SOAP 訊息的相關 Servlet。
範例︰
http://www.myServlet/ http://www.myServlet2/
|
字串
|
|
imqEndpointName
|
SOAP 端點名稱。
範例︰MyTopicEndpoint
|
字串
|
Untitled_ Endpoint_ Object
|
imqEndpointDescription
|
SOAP 端點說明。
範例︰
"imqEndpointDescription=my endpoints for broadcast"
|
字串
|
端點物件說明
|