用戶端應用程式必須使用已適當配置的連線工廠受管理物件,以建立與代理程式的 HTTP 連線。本節說明 HTTP 連線配置問題。
若要啟用 HTTP 支援,您必須將連線工廠的 imqAddressList 屬性設定為 HTTP 通道 Servlet URL。HTTP 通道 Servlet URL 的一般語法如下:
http://hostName:portNumber /contextRoot/tunnel
其中 hostName:portNumber 為託管 HTTP 通道 Servlet 之 Web 伺服器/應用程式伺服器的名稱和連接埠;contextRoot 為在 Web 伺服器/應用程式伺服器上部署通道的路徑設定。
如需連線工廠屬性的一般資訊與 imqAddressList 屬性的特定資訊,請參閱「Message Queue Developer's Guide for Java Clients」。
您可以透過以下方法之一設定連線工廠屬性:
使用可建立連線工廠受管理物件 (請參閱新增連線工廠) 之 imqobjmgr 指令的 -o 選項,或在使用管理主控台 (imqadmin) 建立連線工廠受管理物件時設定屬性。
使用可啟動用戶端之指令的 -D 選項 (請參閱「Message Queue Developer's Guide for Java Clients」)。
當您透過程式設計由用戶端程式碼建立連線工廠後,請使用 API 呼叫以設定屬性 (請參閱「Message Queue Developer's Guide for Java Clients」)。
若要執行多個代理程式,您無需配置多個 Web 伺服器/應用程式伺服器和 Servlet 實例。您可以讓同時執行的代理程式,共用單一 Web 伺服器/應用程式伺服器和 HTTP 通道 Servlet 實例。如果多個代理程式實例共用一個通道 Servlet,您必須配置 imqAddressList 連線工廠屬性,配置內容如下:
http://hostName:portNumber /contextRoot/tunnel?ServerName= bkrHostName:instanceName
其中 bkrHostName 為代理程式實例主機名稱;instanceName 為用戶端所要存取的特定代理程式實例名稱。
若要檢查您為 bkrHostName 和 instanceName 輸入的字串是否正確,請從瀏覽器存取 Servlet URL,並產生 HTTP 通道 Servlet 的狀態報告。此報告將列出 Servlet 所存取的所有代理程式:
HTTP tunnel servlet ready. Servlet Start Time : Thu May 30 01:08:18 PDT 2005 Accepting TCP connections from brokers on port : 7675 Total available brokers = 2 Broker List : jpgserv:broker2 cochin:broker1 |
如果您要使用 HTTP 代理伺服器存取 HTTP 通道 Servlet:
將 http.proxyHost 系統特性設定為代理伺服器主機名稱。
將 http.proxyPort 系統特性設定為代理伺服器連接埠號。
您可以使用可啟動用戶端應用程式之指令的 -D 選項來設定這些特性。