Sun Java System Message Queue 3.7 UR1 管理指南

連線服務

訊息代理程式提供各種連線服務,以使用多種傳輸協定來支援應用程式與管理用戶端。與連線服務相關的代理程式配置特性,列於連線特性中。

表 4–1 顯示可用的連線服務,依據兩種特徵區分:

表 4–1 Message Queue 連線服務

服務名稱 

服務類型 

協定類型

jms

NORMAL

TCP

ssljms (Enterprise Edition)

NORMAL

TLS (SSL 型安全性)

httpjms (Enterprise Edition)

NORMAL

HTTP

httpsjms (Enterprise Edition)

NORMAL

HTTPS (SSL 型安全性)

admin

ADMIN

TCP 

ssladmin

ADMIN

TLS (SSL 型安全性) 

透過設定代理程式的 imq.service.activelist 特性,即可將代理程式配置為執行任一或所有這些連線服務。此特性的值是一組會在代理程式啟動時啟動的連線服務清單;若未明確指定此特性,將依預設啟動 jmsadmin 服務。

每個連線服務也支援特定的認證與授權功能;如需更多資訊,請參閱安全性服務

連接埠對映器

每種連線服務都是透過特定連接埠提供,此時需指定主機名稱 (或 IP 位址) 和連接埠號。您可以明確指定服務的靜態連接埠號,或由代理程式的連接埠對映器動態指定。連接埠對映器本身常駐於代理程式的主連接埠上,即通常位於標準連接埠號 7676 。(若有必要,您可以使用代理程式配置特性 imq.portmapper.port,以其他連接埠號來置換此值。)依預設,每個連線服務皆會在啟動時對連接埠對映器進行自我註冊。當用戶端建立與代理程式的連線時,Message Queue 用戶端執行階段會先連絡連接埠對映器,以請求連接埠號供需要的連線服務使用。

此外,您也可以使用 imq.serviceName.protocolType. port 配置特性置換連接埠對映器,並明確指定連線服務的靜態連接埠號 (其中 serviceName protocolType 表示特定的連線服務,如表 4–1 所示)。(只有 jmsssljmsadminssladmin 連線服務能夠以這種方式進行配置;httpjmshttpsjms 服務使用不同的配置特性,如附錄 CHTTP/HTTPS 支援 所述)。但是,靜態連接埠通常僅在特殊情況下使用,例如透過防火牆連線 (請參閱透過防火牆連線),一般不建議使用。


備註 –

在具有兩部或更多主機的環境下 (例如在電腦上安裝了多張網路卡時),您可以使用代理程式特性來指定連線服務所要連結的主機。imq.hostname 特性可為所有連線服務指定單一的預設主機;而此預設值可在必要時,由下列特性所置換:imq.serviceName. protocolType.hostname (針對 jmsssljmsadminssladmin 服務) 或 imq.portmapper.hostname (針對連接埠對映器本身)。


同時收到多個連接埠對映器請求時,這些請求會儲存在作業系統積存區中等候執行動作。imq.portmapper.backlog 特性會針對這些位於積存區中的請求,指定數量上限。超過此上限時,就會拒絕其他請求,直到積存區量降低為止。

執行緒池管理

每個連線服務均為多重執行緒,支援多重連線。代理程式會針對每個服務,在個別的執行緒池中維護這些連線所需的執行緒。在連線需要執行緒時,這些執行緒就會新增到執行緒池中,供支援該連線的服務使用。

您選擇的執行緒模型會指定執行緒是專屬於單一連線,還是由多個連線共用:

代理程式的 imq.serviceName. threadpool_model 特性,可指定已知連線服務應使用這兩種模型中的哪一種。此特性會採用下列兩個字串值之一: dedicatedshared。若未明確設定特性,則會依預設採用 dedicated

您也可以設定代理程式特性 imq.serviceName. min_threadsimq.serviceName. max_threads,來指定服務執行緒池的最小與最大執行緒數。當可用的執行緒超過此最小臨界值時,Message Queue 將會在執行緒成為閒置狀態時關閉這些執行緒,直到再次達到最小值為止,以節省記憶體資源。在負載量較大的情況下,執行緒的數目會增加,直至達到執行緒池的最大數目為止;此時會拒絕新的連線,直至有執行緒變為可用為止。

共用執行緒模型會使用分散執行緒,將執行緒指定給使用中的連線。代理程式特性 imq.shared.connectionMonitor_limit 可指定由單一分散執行緒監視的最大連線數。此特性的值越小,執行緒指定給連線的速度就越快。imq.ping.interval 特性會指定一個以秒為單位的時間間隔,讓代理程式依此間隔定期測試 (「ping」) 連線,以驗證該連線是否仍在使用中,如此就可以預先偵測到連線失敗,避免所嘗試執行的訊息傳輸失敗。