Sun Java 標誌     上一章      目錄      索引      下一章     

Sun 標誌
Sun Java System Message Queue 3.5 SP1 管理指南 

附錄E
技術說明

本附錄包含以下主題的簡短說明:


系統時鐘設定

使用 Message Queue 系統時,您應仔細地同步化系統時鐘,並避免將它們設定為早於當前的時間。

建議同步化

建議您同步化與 Message Queue 系統互動的所有主機上的時鐘。如果您使用訊息逾時 (TimeToLive),則此操作尤為重要。同步化主機時鐘失敗可能會導致 TimeToLive 無法按預期工作 (訊息可能不會發送)。您應在啟動任何代理程式之前同步化時鐘。

Solaris     您可以在本地主機上發出 rdate 指令,以與遠端主機同步化。(您必須是超級使用者 - 即 root - 才能執行該指令。)例如,以下指令可將本地主機 (稱其為 Host 2) 與遠端主機 Host1 同步化:

# rdate Host1

Linux     指令與 Solaris 類似,但是您必須提供 -s 選項:

# rdate -s Host1

Windows     您可以發出帶有時間子指令的網路指令,以將您的本地主機與遠端主機同步化。例如,以下指令可將本地主機 (稱其為 Host 2) 與遠端主機 Host1 同步化:

net time \\Host1 /set

避免將系統時鐘配置為早於當前時間

您應避免將執行 Message Queue 代理程式的系統上之時鐘設定為早於當前時間。Message Queue 使用時間標記來幫助識別內部物件,如異動和長期訂閱。如果將系統時鐘設定為早於當前時間,從理論上講可能會產生重複的內部識別碼。代理程式透過引入識別碼的某些隨機性,以及在執行時偵測時鐘調整來嘗試進行補償,但是如果在代理程式未執行時,將系統時鐘調整為遠遠早於當前時間,則仍有識別碼重複的可能。

如果您需要將執行代理程式的系統上之系統時鐘設定為比當前時間早幾秒鐘,建議您在沒有異動或長期訂閱時進行,或者在代理程式未執行時進行,然後等待一段時間 (您調整的時鐘時間),再重新啟動代理程式。

但是,理想的方法是在啟動任何代理程式之前同步化時鐘,然後使用相應的技術以確保時鐘不會在部署後有較大調整。


定義作業系統檔案描述元限制

在 Solaris 和 Linux 平台上,在其中執行用戶端或代理程式的 shell 對用戶端可以使用的檔案描述元的數目指定了軟式限制。在 Message Queue 系統中,用戶端建立的每個連接或代理程式接受的每個連接,均使用這些檔案描述元的其中之一。每個擁有永久性訊息的目標皆使用一個檔案描述元。

因此,這些因素會限制連接數目。如果不變更檔案描述元限制,您的代理程式或用戶端便無法在 Solaris 上支援 256 個以上的連接,或在 Linux 上支援 1024 個以上的連接。(連接限制實際上低於上述數目,因為會持續使用檔案描述元。)

若要變更檔案描述元限制,請參閱 ulimit 線上援助頁。您需要在用戶端或代理程式將在其中執行的每個 shell 中變更此限制。


保護永久性資料

代理程式使用永久性倉庫,可包含與其他資訊一起暫時儲存的訊息檔案。由於這些訊息可能包含專用資訊,建議您保護資料倉庫,以防止未經授權的存取。

代理程式可以使用內建永久性倉庫或外掛永久性倉庫。

內建永久性倉庫

使用內建永久性倉庫的代理程式,會將永久性資料寫入目錄 (目錄位置因平台而異) 中的文字檔案資料倉庫 (請參閱附錄 A「Message Queue 資料的位置」):

.../instances/instanceName/fs350/

instanceName 是辨別代理程式實例的名稱。

instanceName/filestore/ 目錄在代理程式實例首次啟動時建立。保護此目錄的程序取決於在其上執行代理程式的作業系統。

Solaris 和 Linux     IMQ_VARHOME/instances/ instanceName/filestore/ 目錄的許可權取決於啟動代理程式實例的使用者的 umask。因此,透過適當地設定 umask,您可以限制啟動代理程式實例和讀取其永久性檔案的許可權。此外,管理員 (超級使用者) 可以透過將 IMQ_VARHOME/instances 目錄的許可權設定為 700 來保護永久性資料。

Windows     IMQ_VARHOME/instances/ instanceName/filestore/ 目錄的許可權可以使用您所使用的 Windows 作業系統提供的機制來設定。這通常需要開啟目錄的內容對話方塊。

外掛永久性倉庫

使用外掛永久性倉庫的代理程式將永久性資料寫入 JDBC 相容的資料庫中。

對於由資料庫伺服器管理的資料庫 (例如 Oracle 資料庫),建議您建立使用者名稱和密碼,以存取 Message Queue 資料庫表格 (表格名稱以「IMQ」開頭)。如果資料庫不允許保護個別表格,請建立僅由 Message Queue 代理程式使用的專用資料庫。請諮詢資料庫供應商,以取得有關如何建立使用者名稱/密碼存取的說明文件。

代理程式開啟資料庫連接所需的使用者名稱和密碼可以作為代理程式配置特性提供。但是,在啟動代理程式時,將它們作為指令行選項提供會更加安全 (請參閱「Message Queue 管理指南」的附錄 A「設定外掛永久性倉庫」)。

對於代理程式透過資料庫的 JDBC™ 驅動程式直接存取的內嵌式資料庫 (例如 Cloudscape 資料庫),通常透過在要儲存永久性資料的目錄上設定檔案許可權 (如上面的「內建永久性倉庫」中所述),來提供安全性。但是,若要確保代理程式和 imqdbmgr 公用程式均可讀取和寫入資料庫,則兩者應由同一個使用者執行。



上一章      目錄      索引      下一章     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.