![]() | |
Sun Java System Message Queue 3 2005Q4 管理指南 |
附錄 C
HTTP/HTTPS 支援Message Queue Enterprise Edition 包含了對 Java 用戶端的支援,以藉由 HTTP 或安全 HTTP (HTTPS) 傳輸,而不是直接的 TCP 連線,與代理程式進行通訊。HTTP/HTTPS 支援無法提供給 C 用戶端。
本附錄描述用於啟用此支援的架構,並介紹允許用戶端使用 HTTP 型連線進行 Message Queue 訊息傳送所需的設定工作。它包含下列各節:
HTTP/HTTPS 支援架構Message Queue 訊息傳送可在 HTTP/HTTPS 連線的頂層執行。由於通常可允許 HTTP/HTTPS 連線通過防火牆,因此可允許透過防火牆將用戶端應用程式與代理程式分隔。
圖 C-1 顯示提供 HTTP/HTTPS 支援所需的主要元件。
- 在用戶端,HTTP 或 HTTPS 傳輸驅動程式會將 Message Queue 訊息封裝在 HTTP 請求中,並確保這些請求會以正確的順序傳送至 Web 伺服器/應用程式伺服器。
- 如有必要,用戶端可使用 HTTP 代理伺服器與代理程式進行通訊。代理的位址在啟動用戶端時使用指令行選項指定。請參閱使用 HTTP 代理,以獲得更多資訊。
- HTTP 或 HTTPS 通道 Servlet (均隨附於 Message Queue) 會載入 Web 伺服器/應用程式伺服器中,並在將有效負載訊息轉寄至代理程式之前,將它們從用戶端 HTTP 請求中移除。HTTP/HTTPS 通道 Servlet 也會將代理程式訊息傳送回用戶端,以回應用戶端發出的 HTTP 請求。單一 HTTP/HTTPS 通道 Servlet 可用於存取多重代理程式。
圖 C-1 HTTP/HTTPS 支援架構
- 在代理程式端,會展開 httpjms 或 httpsjms 連線服務,並對從相應通道 Servlet 傳送的內送訊息取消多工處理。
- 如果 Web 伺服器/應用程式伺服器發生故障並重新啟動,則所有連線均會復原且不會影響用戶端。如果代理程式發生故障並重新啟動,則系統會發生異常,且用戶端必須重新建立其連線。如果 Web 伺服器/應用程式伺服器與代理程式均發生故障,且未重新啟動代理程式 (這種情況不太可能發生),則 Web 伺服器/應用程式伺服器會復原用戶端連線,並繼續等待代理程式連線,且不會通知用戶端。若要避免這種情況,請務必重新啟動代理程式。
如圖 C-1 中所示,HTTP 和 HTTPS 支援的架構非常相似。主要區別在於,對於 HTTPS (httpsjms 連線服務),通道 Servlet 具有與用戶端應用程式和代理程式的安全連線。
可透過已啟用 SSL 的通道 Servlet (Message Queue 的 HTTPS 通道 Servlet) 提供與代理程式的安全連線。此通道 Servlet 會將自身簽名的憑證傳送至請求連線的任何代理程式。代理程式使用此憑證來設定與 HTTPS 通道 Servlet 的加密連線。一旦建立了此連線,用戶端應用程式與通道 Servlet 之間的安全連線即可由用戶端應用程式和 Web 伺服器/應用程式伺服器協商。
啟用 HTTP 支援以下各節描述啟用 HTTP 支援所需的步驟。
啟用 HTTP 支援
步驟 1:部署 HTTP 通道 Servlet
您可以將 HTTP 通道 Servlet 部署為 Sun Java System Web Server 或 Sun Java System Application Server 上的 Web 歸檔 (.war) 檔案。
將 HTTP 通道 Servlet 部署為 .war 檔案,需要使用 Web 伺服器/應用程式伺服器所提供的部署機制。HTTP 通道 Servlet .war 檔案 (imqhttp.war) 位於包含 .jar、.war 和 .rar 檔案的目錄中,同時目錄位置會因作業系統而異 (請參閱附錄 A「Message Queue 資料的平台特定位置」)。
.war 檔案包括部署描述元,而該描述元會包含 Web 伺服器/應用程式伺服器載入和執行 Servlet 所需之基本配置資訊。因 Web 伺服器/應用程式伺服器的不同,您也可能必須指定 Servlet URL 的環境根目錄部分。
部署為 Web 歸檔檔案
如需在 Sun Java System Web Server 上部署的相關資訊,請參閱在 Sun Java System Web Server 上部署 HTTP 通道 Servlet。
如需在 Sun Java System Application Server 上部署的相關資訊,請參閱在 Sun Java System Application Server 上部署 HTTP 通道 Servlet。
在 Sun Java System Web Server 上部署 HTTP 通道 Servlet
以下說明代表 Sun Java System Web Server 上的部署。您可以透過使用 Web 瀏覽器存取 Servlet URL,來驗證成功的 HTTP 通道 Servlet 部署。它應顯示狀態資訊。
將 HTTP 通道 Servlet 部署為 .war 檔案
- 在瀏覽器型的管理 GUI 中,選取 [虛擬伺服器類別] 標籤並選取 [管理類別]。
- 選取適當的虛擬伺服器類別名稱 (例如 defaultClass),然後按一下 [管理] 按鈕。
- 選取 [管理虛擬伺服器]。
- 選取適當的虛擬伺服器名稱,然後按一下 [管理] 按鈕。
- 選取 [Web 應用程式] 標籤。
- 按一下 [部署 Web 應用程式]。
- 為 [WAR 檔案開啟] 和 [WAR 檔案路徑] 欄位選取適當的值,以便指向 imqhttp.war 檔案的位置。您可以在某個目錄 (目錄位置因作業系統而異) 中找到此檔案 (請參閱附錄 A「Message Queue 資料的平台特定位置」)。
- 在 [應用程式 URI] 欄位中輸入路徑。
[應用程式 URI] 欄位值為通道 Servlet URL 之 /contextRoot 的一部分:
http://hostName:portNumber/contextRoot/tunnel
例如,如果您將 contextRoot 設定至 imq,則 [應用程式 URI] 欄位應為:
/imq
- 輸入應部署 Servlet 的安裝目錄路徑 (通常位於 Sun Java System Web Server 安裝根目錄下)。
- 按一下 [確定]。
- 重新啟動 Web 伺服器實例。
此時,Servlet 可從以下位址獲得:
http://hostName:portNumber/contextRoot/tunnel
此時,用戶端可使用此 URL 連線至使用 HTTP 連線的訊息服務。
停用伺服器存取記錄
您不必停用伺服器存取記錄,但是如果您停用記錄,將會獲得更好的效能。
停用伺服器存取記錄
使用記錄用戶端存取控制來停用記錄。
在 Sun Java System Application Server 上部署 HTTP 通道 Servlet
本節描述如何在 Sun Java System Application Server 上將 HTTP 通道 Servlet 部署為 .war 檔案,接著再配置通道 Servlet,接受來自 Message Queue 代理程式的連線。
您需要執行下列兩個步驟:
使用部署工具
在應用程式伺服器環境中部署 HTTP 通道 Servlet
- 在網路型管理 GUI 中,選擇
[應用程式伺服器] > [實例] > [server1] > [應用程式] > [Web 應用程式]。
- 按一下 [部署] 按鈕。
- 在 [檔案路徑:] 文字欄位輸入 HTTP 通道 Servlet .war 檔案 (imqhttp.war) 的位置,再按一下 [確定]。
imqhttp.war 檔案的位置會因您的作業系統而有差異 (請參閱附錄 A「Message Queue 資料的平台特定位置」)。
- 於 [環境根目錄] 文字欄位中設定數值,再按一下 [確定]。
[環境根目錄] 欄位值為通道 Servlet URL 之 /contextRoot 的一部分:
http://hostName:portNumber/contextRoot/tunnel
例如,您可以將 [環境根目錄] 欄位設定為 /imq。
預設會啟用在通道 Servlet 已成功部署時出現確認畫面,在本例中位於:
/var/opt/SUNWappserver8/domains/domain1/server1/applications/
j2ee-modules/imqhttp_1此時,Servlet 可從以下 URL 取得:
http://hostName:portNumber/contextRoot/tunnel
此時,用戶端可使用此 URL 連線至使用 HTTP 連線的訊息服務。
修改 server.policy 檔案
應用程式伺服器會實施一組預設的安全策略,除非將其修改,否則這組安全策略可以阻止 HTTP 通道 Servlet 接受來自 Message Queue 代理程式的連線。
每個應用程式伺服器實例,皆有一個包含安全策略或規則的檔案。例如,Solaris 上用於 server1 實例的檔案位置為:
/var/opt/SUNWappserver8/domains/domain1/server1/config/
server.policy若要配置通道 Servlet 接受來自Message Queue代理程式的連線,則必須在此檔案新增其他項目。
修改 Application Server 的伺服器策略檔案
步驟 2:配置 httpjms 連線服務
預設情況下,代理程式不會啟動 HTTP 支援,所以您必須重新配置代理程式,以啟動 httpjms 連線服務。一旦重新配置,此代理程式便可啟動,如啟動代理程式中所述。
啟動 httpjms 連線服務
- 開啟代理程式的實例配置檔案。
實例配置檔案儲存於以代理程式實例名稱 (instanceName) 作為辨別依據的目錄中,且代理程式實例與配置檔案相互關聯 (請參閱附錄 A「Message Queue 資料的平台特定位置」):
.../instances/instanceName/props/config.properties
- 將 httpjms 值新增至 imq.service.activelist 特性:
imq.service.activelist=jms,admin,httpjms
啟動時,代理程式會查詢在其主機上執行的 Web 伺服器/應用程式伺服器和 HTTP 通道 Servlet。但是,若要存取遠端通道 Servlet,您可以重新配置 servletHost 和 servletPort 連線服務特性。
您還可以重新配置 pullPeriod 特性,以提昇效能。表 C-1 中詳細介紹了 httpjms 連線服務配置特性。
步驟 3:配置 HTTP 連線
用戶端應用程式必須使用已適當配置的連線工廠管理物件,以建立與代理程式的 HTTP 連線。本節說明 HTTP 連線配置問題。
配置連線工廠
若要啟用 HTTP 支援,您必須將連線工廠的 imqAddressList 屬性設定至 HTTP 通道 Serlet URL。HTTP 通道 Servlet URL 的一般語法如下:
http://hostName:portNumber/contextRoot/tunnel
其中 hostName:portNumber 為代管 HTTP 通道 Servlet 之 Web 伺服器/應用程式伺服器的名稱和連接埠;contextRoot 為在 Web 伺服器/應用程式伺服器上部署通道 Servlet 的路徑設定。
如需連線工廠屬性的一般資訊與 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」)。
使用單一 Servlet 存取多重代理程式
如果您要執行多重代理程式,則無需配置多重 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 通道 Servlet 準備就緒。
Servlet 啟動時間:Thu May 30 01:08:18 PDT 2005
接受連接埠上來自代理程式的 TCP 連線: 7675
代理程式可用總數 = 2
代理程式清單:
jpgserv:broker2
cochin:broker1
使用 HTTP 代理
如果您要使用 HTTP 代理存取 HTTP 通道 Servlet:
您可以使用可啟動用戶端應用程式之指令的 -D 選項來設定這些特性。
啟用 HTTPS 支援下列各節描述啟用 HTTP 支援的步驟。它們與啟用 HTTP 支援中的步驟,以及產生和存取 SSL 憑證所需的步驟相似。
啟用 HTTPS 支援
以下各節中將更加詳細地說明這些步驟中的每一步。
步驟 1:為 HTTPS 通道 Servlet 產生自身簽名的憑證
在假設用戶端正與已知且可信任的伺服器通訊的情況下,Message Queue 的 SSL 支援可保護線上資料。因此,僅使用自身簽名的伺服器憑證即可實施 SSL。在 httpsjms 連線服務架構中,HTTPS 通道 Servlet 是代理程式與應用程式用戶端的伺服器。
執行 keytool 公用程式,以為通道 Servlet 產生自身簽名的憑證。在指令提示符號下輸入以下內容:
JRE_HOME/bin/keytool -servlet keyStoreLocation
此公用程式將提示您提供所需的資訊。(在 Unix 系統上,需要以超級使用者 (root) 的身份執行 keytool,才擁有建立金鑰存放區的權限。)
首先,keytool 會提示您提供金鑰存放區密碼,以及某些組織資訊,然後提示您確認。接收到確認之後,它會在產生金鑰對時暫停。然後它會要求您提供密碼,以鎖定特定的成對金鑰 (金鑰密碼);您應按 Return 鍵以回應此提示:這會使金鑰密碼與金鑰存放區密碼相同。
JDK keytool 公用程式會產生自身簽名憑證,並將其放置在 Message Queue 的金鑰存放區檔案,該檔案位於 keyStoreLocation 引數所指定的位置。
備註
HTTPS 通道 Servlet 必須可查看此金鑰存放區。請確定您將位於 keyStoreLocation 中所產生的金鑰存放區移動/複製到 HTTPS 通道 Servlet 可存取的位置 (請參閱步驟 3:部署 HTTPS 通道 Servlet)。
步驟 2:修改 HTTP 通道 Servlet .war 檔案的描述元檔案
HTTP 通道 Servlet 的 .war 檔案包括部署描述元,其包含 Web 伺服器/應用程式伺服器負載和執行 Servlet 所需的基本配置資訊。
imqhttps.war 檔案的部署描述元,無法知道您已將通道 Servlet 所需的金鑰存放區檔案置於何處。所以您需要編輯通道 Servlet 的部署描述元 (XML 檔案),以在部署 imqhttps.war 檔案之前指定金鑰存放區的位置和密碼。
修改 HTTPS 通道 Servlet .war 檔案
- 將 .war 檔案複製到暫存目錄。
cp /usr/share/lib/imq/imqhttps.war /tmp (Solaris)
cp /opt/sun/mq/share/lib/imqhttps.war /tmp (Linux)
cp IMQ_HOME/lib/imqhttps.war /tmp (Windows)
- 將此暫存目錄變為您的目前目錄。
$ cd /tmp
- 擷取 .war 檔案的內容。
$ jar xvf imqhttps.war
- 列出 .war 檔案的部署描述元。
$ ls -l WEB-INF/web.xml
- 編輯 web.xml 檔案,以便為 keystoreLocation 和 keystorePassword 引數 (如有必要,還包括 servletPort 和 servletHost 引數) 提供正確的值。
- 重新組合 .war 檔案的內容。
$ jar uvf imqhttps.war WEB-INF/web.xml
此時,您可以使用已修改的 imqhttps.war 檔案來部署 HTTPS 通道 Servlet。(如果您擔心金鑰存放區密碼洩漏,則可以使用檔案系統權限來限制其他人對 imqhttps.war 檔案的存取。)
步驟 3:部署 HTTPS 通道 Servlet
您可以將 HTTP 通道 Servlet 部署為 Sun Java System Web Server 或 Sun Java System Application Server 上的 Web 歸檔 (WAR) 檔案。
將 HTTPS 通道 Servlet 部署為 .war 檔案,需要使用 Web 伺服器/應用程式伺服器提供的部署機制。HTTPS 通道 Servlet .war 檔案 (imqhttps.war) 位於您作業系統的某個目錄中,但目錄位置依作業系統而異 (請參閱附錄 A「Message Queue 資料的平台特定位置」)。
您應確保已為 Web 伺服器啟動加密,從而讓用戶端與代理程式之間進行端對端安全通訊。
部署為 Web 歸檔檔案
如需在 Sun Java System Web Server 上部署的相關資訊,請參閱在 Sun Java System Web Server 上部署 HTTPS 通道 Servlet。
如需在 Sun Java System Application Server 上部署的相關資訊,請參閱在 Sun Java System Application Server 上部署 HTTPS 通道 Servlet。
在 Sun Java System Web Server 上部署 HTTPS 通道 Servlet
本節描述如何將 HTTPS 通道 Servlet 部署為 Sun Java System Web Server 上的 .war 檔案。您可以透過使用 Web 瀏覽器存取 Servlet URL,來驗證已成功地部署 HTTPS 通道 Servlet。它應顯示狀態資訊。
在部署 HTTPS 通道 Servlet 之前,請確保 JSSE .jar 檔案包含在 Web 伺服器的類別路徑中。執行此作業的最簡單方法是將 jsse.jar、jnet.jar 和 jcert.jar 複製到 WebServer_TOPDIR/bin/https/jre/lib/ext。
將 HTTPS 通道 Servlet 部署為 .war 檔案
- 在瀏覽器型的管理 GUI 中,選取 [虛擬伺服器類別] 標籤。按一下 [管理類別]。
- 選取適當的虛擬伺服器類別名稱 (例如 defaultClass),然後按一下 [管理] 按鈕。
- 選取 [管理虛擬伺服器]。
- 選取適當的虛擬伺服器名稱,然後按一下 [管理] 按鈕。
- 選取 [Web 應用程式] 標籤。
- 按一下 [部署 Web 應用程式]。
- 為 [WAR 檔案開啟] 和 [WAR 檔案路徑] 欄位選取適當的值,以便指向已修改的 imqhttps.war 檔案 (請參閱修改 HTTPS 通道 Servlet .war 檔案)。
- 在 [應用程式 URI] 欄位中輸入路徑。
[應用程式 URI] 欄位值為通道 Servlet URL 之 /contextRoot 的一部分:
https://hostName:portNumber/contextRoot/tunnel
舉例來說,如果您將 contextRoot 設定至 imq,[應用程式 URI] 欄位應為:
/imq
- 輸入應部署 Servlet 的安裝目錄路徑 (通常位於 Sun Java System Web Server 安裝根目錄下)。
- 按一下 [確定]。
- 重新啟動 Web Server 實例。
此時,Servlet 可從以下 URL 獲得:
https://hostName:portNumber/imq/tunnel
此時,用戶端可使用此 URL,以使用安全 HTTPS 連線而連線至訊息服務。
停用伺服器存取記錄
您不必停用伺服器存取記錄,但是如果您停用記錄,將會獲得更好的效能。
停用伺服器存取記錄
使用記錄用戶端存取控制來停用記錄。
在 Sun Java System Application Server 上部署 HTTPS 通道 Servlet
本節描述如何將 HTTPS 通道 Servlet 部署為 Sun Java System Application Server 上的 .war 檔案。
您需要執行下列兩個步驟:
使用部署工具
在應用程式伺服器環境中部署 HTTPS 通道 Servlet
- 在瀏覽器型的管理 GUI 中選取
[應用程式伺服器] > [實例] > [server1] > [應用程式] > [Web 應用程式]
- 按一下 [部署] 按鈕。
- 在 [檔案路徑:] 文字欄位輸入 HTTPS 通道 Servlet .war 檔案 (imqhttps.war) 的位置,再按一下 [確定]。
imqhttps.war 檔案的位置會因您的作業系統而異 (請參閱附錄 A「Message Queue 資料的平台特定位置」)。
- 於 [環境根目錄] 文字欄位中設定數值,再按一下 [確定]。
[環境根目錄] 欄位值為通道 Servlet URL 的 /contextRoot 的一部分:
https://hostName:portNumber/contextRoot/tunnel
例如,您可以將 [環境根目錄] 欄位設定為:
/imq
依預設,接著會出現下一個畫面,表示通道 Servlet 已成功部署在:
/var/opt/SUNWappserver8/domains/domain1/server1/applications/
j2ee-modules/imqhttps_1此時,Servlet 可從以下 URL 獲得:
https://hostName:portNumber/contextRoot/tunnel
此時,用戶端可使用此 URL,以使用 HTTPS 連線而連線至訊息服務。
修改 server.policy 檔案
應用程式伺服器會實施一組預設的安全策略,除非將其修改,否則這組安全策略可以阻止 HTTPS 通道 Servlet 接受來自 Message Queue 代理程式的連線。
每個應用程式伺服器實例,皆有一個包含安全策略或規則的檔案。例如,Solaris 上用於 server1 實例的檔案位置為:
/var/opt/SUNWappserver8/domains/domain1/server1/config/
server.policy若要讓通道 Servlet 接受來自 Message Queue 代理程式的連線,則必須在此檔案新增其他項目。
修改 Application Server 的伺服器策略檔案
步驟 4:配置 httpsjms 連線服務
預設情況下,代理程式不會啟動 HTTPS 支援,所以您必須重新配置代理程式,以啟動 httpsjms 連線服務。一旦重新配置,此代理程式便可啟動,如啟動代理程式中所述。
啟動 httpsjms 連線服務
- 開啟代理程式的實例配置檔案。
實例配置檔案儲存於以代理程式實例名稱 (instanceName) 作為辨別依據的目錄中,且代理程式實例與配置檔案相互關聯 (請參閱附錄 A「Message Queue 資料的平台特定位置」):
.../instances/instanceName/props/config.properties
- 將 httpsjms 值新增至 imq.service.activelist 特性:
imq.service.activelist=jms,admin,httpsjms
啟動時,代理程式會查詢在其主機上執行的 Web 伺服器和 HTTPS 通道 Servlet。但是,若要存取遠端通道 Servlet,您可以重新配置 servletHost 和 servletPort 連線服務特性。
您還可以重新配置 pullPeriod 特性,以提昇效能。表 C-2 中詳細介紹了 httpsjms 連線服務配置特性。
步驟 5:配置 HTTPS 連線
用戶端應用程式必須使用已適當配置的連線工廠受管理物件,以建立與代理程式的 HTTPS 連線。
但是,用戶端還必須對 Java 安全套接延伸 (JSSE) 提供的 SSL 程式庫擁有存取權,並且還必須具有超級使用者憑證。SSL 程式庫隨附於 JDK 1.4。如果您有較低版本的 JDK,請參閱配置 JSSE,否則請繼續執行匯入超級使用者憑證。
解決這些問題後,即可以繼續配置 HTTPS 連線。
配置 JSSE
配置 JSSE
- 將 JSSE .jar 檔案複製到 JRE_HOME/lib/ext 目錄。
jsse.jar、jnet.jar 和 jcert.jar
- 靜態新增 JSSE 安全性供應程式,方法為透過將
security.provider.n=com.sun.net.ssl.internal.ssl.Provider
新增至 JRE_HOME/lib/security/java.security 檔案 (其中 n 為安全性供應程式套裝軟體的下一個可用優先順序號)。
- 如果未使用 JDK1.4,則您需要使用可啟動用戶端應用程式之指令的 -D 選項,來設定以下 JSSE 特性:
java.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol
匯入超級使用者憑證
如果 CA (簽名 Web 伺服器憑證的單位) 的根憑證依預設不在信任資料庫中,或者您使用的是專用 Web 伺服器/應用程式伺服器憑證,則您必須將此憑證新增至信任資料庫。如果出現此情況,請遵循以下說明,否則請參考配置連線工廠中的說明。
假設此憑證儲存在 certFile 中,且 trustStoreFile 為您的金鑰存放區,請執行以下指令:
JRE_HOME/bin/keytool -import -trustcacerts
-alias aliasForCertificate -file certFile
-keystore trustStoreFile對以下問題回答 YES:是否信任此憑證?
您還需要使用可啟動用戶端應用程式之指令的 -D 選項,來指定以下 JSSE 特性:
javax.net.ssl.trustStore=trustStoreFile
javax.net.ssl.trustStorePassword=trustStorePasswd
配置連線工廠
若要啟用 HTTPS 支援,您必須將連線工廠的 imqAddressList 屬性設定至 HTTPS 通道 Serlet URL。HTTPS 通道 Servlet URL 的一般語法如下:
https://hostName:portNumber/contextRoot/tunnel
其中 hostName:portNumber 為代管 HTTPS 通道 Servlet 之 Web 伺服器名稱和連接埠;contextRoot 為在 Web 伺服器上部署通道 Servlet 時的路徑設定。
如需連線工廠屬性的一般資訊與 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」)。
使用單一 Servlet 存取多重代理程式
如果您要執行多重代理程式,則無需配置多重 Web 伺服器和 Servlet 實例。您可以在同時執行的代理程式中共用單一 Web 伺服器和 HTTPS 通道 Servlet 實例。如果多重代理程式實例正共用一個通道 Servlet,您必須配置 imqAddressList 連線工廠屬性,配置內容如下:
https://hostName:portNumber/contextRoot/tunnel?ServerName=bkrHostName:instanceName
其中 bkrHostName 為代理程式實例主機名稱;instanceName 為用戶端存取的特定代理程式實例名稱。
若要檢查您是否已為 bkrhostName 和 instanceName 輸入正確的字串,則應透過瀏覽器存取 Servlet URL,產生 HTTPS 通道 Servlet 的狀態報告。此報告將列出 Servlet 要存取的所有代理程式:
HTTPS 通道 Servlet 準備就緒。
Servlet 啟動時間:Thu May 30 01:08:18 PDT 2002
接受連接埠上來自代理程式的安全連線: 7674
代理程式可用總數 = 2
代理程式清單:
jpgserv:broker2
cochin:broker1
使用 HTTP 代理
如果您要使用 HTTP 代理存取 HTTPS 通道 Servlet:
您可以使用可啟動用戶端應用程式之指令的 -D 選項來設定這些特性。
疑難排解本節描述 HTTP 或 HTTPS 連線可能發生的問題,並提供處理這些問題的方法。
伺服器或代理程式發生故障
如果 Web 伺服器發生故障並重新啟動,則所有連線均會復原且不會影響用戶端。但是,如果代理程式發生故障並重新啟動,則系統會產生異常,且用戶端必須重新建立它們的連線。
如果 Web 伺服器與代理程式均發生故障,且未重新啟動代理程式,則 Web 伺服器會復原用戶端連線,並繼續等待代理程式連線,而不通知用戶端。若要避免這種情況,請確定代理程式已重新啟動。
用戶端無法透過通道 Servlet 連線
如果 HTTPS 用戶端無法透過通道 Servlet 連線代理程式,請執行以下作業:
當服務繼續時,HTTPS 用戶端應該就能透過通道 Servlet 連線代理程式。