![]() | |
Sun Java System Message Queue 3 2005Q1 管理指南 |
第 3 章
啟動代理程式和用戶端安裝 Sun Java System Message Queue 並執行一些基本準備步驟後,您即可以啟動代理程式和用戶端。
本章包含以下各節:
代理程式實例的配置由一組配置檔案和使用 imqbrokerd 指令傳送的選項管理,這些選項覆寫配置檔案中的相應特性。如需代理程式配置的詳細資訊,請參閱第 4 章「配置代理程式」。
準備系統資源啟動代理程式之前,必須先執行兩個系統級別的工作:同步化系統時鐘,以及設定 Solaris 或 Linux 的檔案描述元限制。後面幾節將描述這些工作。
同步化系統時鐘
啟動任何代理程式或用戶端之前,必須先同步化會與 Message Queue 系統互動的所有主機的時鐘。如果您使用訊息逾時 (TimeToLive),則同步化尤為重要。不同步的時鐘時間戳記可能讓 TimeToLive 功能無法正常運作或無法傳送訊息。同步化對代理程式叢集也十分重要。
您應該配置系統以執行時間同步化協定,例如 Simple Network Time Protocol (SNTP)。Solaris 和 Linux 的 xntpd 常駐程式和 Windows 的 W32Time Time 服務通常支援時間同步化功能。如需配置此服務的詳細資訊,請參閱作業系統的文件。
代理程式執行後,請避免回頭設定系統時鐘。
設定檔案描述元限制 (Solaris 或 Linux)
Solaris 和 Linux 平台上,在其中執行用戶端或代理程式的 Shell 對程序可以使用的檔案描述元的數目指定了軟式限制。在 Message Queue 系統中,用戶端建立的每個連線或代理程式接受的每個連線,均使用這些檔案描述元的其中之一。每個擁有永久性訊息的實體目標皆使用一個檔案描述元。
因此,這些因素會限制連線數目。如果不變更檔案描述元限制,您的代理程式或用戶端便無法在 Solaris 上支援 256 個以上的連線,或在 Linux 上支援 1024 個以上的連線。(連線限制實際上低於上述數目,因為會持續使用檔案描述元。)
若要變更檔案描述元限制,請參閱 ulimit 線上手冊。您需要在用戶端或代理程式將在其中執行的每個 shell 中變更此限制。
以互動方式啟動代理程式您可以在指令行使用 imqbrokerd 指令,以互動方式啟動代理程式。(或者,您可以從 Windows 的 [開始] 功能表,啟動代理程式。)您不能使用管理主控台(imqadmin) 或指令公用程式 (imqcmd) 來啟動代理程式,因為您必須先執行代理程式,才能使用這些工具。
Solaris 和 Linux 平台上的代理程式實例,必須由最初啟動平台的使用者來啟動。代理程式實例初次啟動時,Message Queue 使用這位使用者的 umask 來設定代理程式實例目錄 (包含配置資訊和永久性資料) 的許可權。每個代理程式實例都有自己的配置特性和基於檔案的訊息儲存組。
代理程式實例的預設名稱是 imqbroker。您只要使用下列指令,即可從指令行以這個名稱和預設配置來啟動代理程式
imqbrokerd
這個指令在本地機器上使用預設連接埠 7676 上的連接埠對映器,啟動代理程式實例 imqbroker。
若要指定非預設的實例名稱,請在 imqbrokerd 指令上使用 -name 選項。下列指令啟動的代理程式實例的名稱是 myBroker:
imqbrokerd -name myBroker
您還可以在 imqbrokerd 指令行上使用其他選項來控制代理程式作業的各種狀況。下列範例使用 -tty 選項,向指令視窗 (標準輸出) 傳送錯誤和警告:
imqbrokerd -name myBroker -tty
您也可以在指令行上使用 -D 選項來覆寫代理程式實例配置檔案 (config.properties) 中指定的特性值。這個範例設定 imq.jms. max_threads 特性,將 jms 連線服務可用的最大執行緒數目,提高到 2000:
imqbrokerd -name myBroker -Dimq.jms. max_threads=2000
如需 imqbrokerd 指令的語法、子指令和選項的詳細資訊,請參閱第 13 章「指令參照」。如需這項資訊的快速摘要,請輸入下列指令:
imqbrokerd -help
自動啟動代理程式除了明確的從指令行啟動代理程式之外,您還可以設定在系統啟動時自動啟動代理程式。執行方式因執行代理程式的平台 (Solaris、Linux 或 Windows) 而異。
在 Solaris 和 Linux 自動啟動
在 Solaris 和 Linux 系統上安裝 Message Queue 時,可以自動啟動的程序檔放在 /etc/rc* 樹狀目錄中。若要使用這些程序檔,您必須如下所示,編輯配置檔案 /etc/imq/imqbrokerd.conf (Solaris) 或 /etc/opt/sun/mq/imqbrokerd.conf (Linux):
在 Windows 自動啟動
若要在 Windows 系統啟動時自動啟動代理程式,您必須將代理程式定義為 Windows 服務。在 Windows 系統上安裝 Message Queue 時,您可以將代理程式安裝為服務。安裝後,您可以使用服務管理員公用程式 imqsvcadmin 執行下列作業:
如需 imqsvcadmin 指令的語法、子指令和選項的參照資訊,請參閱第 13 章「指令參照」。
將代理程式作為 Windows 服務安裝,意味著此代理程式將在系統啟動時啟動,並在後台執行直至關機。因此,您不必使用 imqbrokerd 指令啟動代理程式,除非您要啟動其他實例。
若要將啟動選項傳給代理程式,您可以在 imqsvcadmin 指令中使用 -args 引數。這等同於以互動方式啟動代理程式中描述的 imqbrokerd 指令的 -D 選項。使用 imqcmd 指令以控制代理程式照常作業。
當代理程式作為 Windows 服務執行時,工作管理員會將代理程式作為兩個可執行程序列出:
系統只有一個代理程式作為 Windows 服務執行。
重新配置代理程式服務
重新配置 Windows 服務的順序如下:
使用替代 Java 執行階段
您可以使用 -javahome 或 -jrehome 選項來指定替代 Java 執行階段的位置。您還可以在 [Windows 服務控制台] 的 [啟動參數] 欄位中指定這些選項。
[啟動參數] 欄位將反斜線 (\) 視為退出字元,因此當您以反斜線來區隔路徑時,必須輸入兩次;例如,
-javahome d:\\jdk1.3。顯示代理程式服務啟動選項
若要決定代理程式服務的啟動選項,請在 imqsvcadmin 指令中使用 query 選項。
imqsvcadmin query
已安裝服務 iMQ_Broker。
顯示名稱:iMQ_Broker
啟動類型:手動
二進位位置:c:\Program Files\Sun Microsystems\
Message Queue 3.5\bin\imqbrokersvcJavaHome:c:\j2sdk1.4.0
代理程式引數:-passfile d:\imqpassfile
服務啟動問題疑難排解
啟動服務時如果出現錯誤,您可以檢視已記錄的錯誤事件。
踊t查閱記錄的服務錯誤事件移除當作 Windows 服務執行的代理程式
若要移除當作服務執行的代理程式,請執行下列其中一項:
完成後,重新啟動電腦。
啟動 Message Queue 用戶端啟動用戶端應用程式之前,您必須先向應用程式開發者取得系統的設定資訊。如果您啟動 Java 用戶端應用程式,您必須設定 CLASSPATH 變數,並且確定已安裝正確的 JAR 檔案。Message Queue Developer’s Guide for Java Clients 中有一般的系統設定步驟資訊,但是您的開發者可能會提供其他資訊。
啟動 Java 用戶端應用程式時,請使用下列的指令行格式:
java clientAppName
啟動 C 用戶端應用程式時,請使用應用程式開發者提供的格式。
應用程式開發者或應用程式文件應該提供應用程式設定的屬性值資訊。您可能要覆寫應用程式設定的某些屬性。您可以在指令行中指定要覆寫的屬性。
您可能還要在指令行中為任何使用 JNDI 查找功能來尋找連線工廠的 Java 用戶端,指定屬性。如果查找功能傳回的連線工廠比應用程式還舊,這表示連線工廠不支援新的屬性。此時,Message Queue 會將這些屬性設定為預設值。您可以在指令行中指定屬性,將這些屬性設定為非預設值。
在指令行中提供屬性值時,請使用 Java 應用程式的下列指令行語法:
java [[-Dattribute=value ]...] clientAppName
attribute 值必須如 第 16 章「受管理物件屬性參照」 中所描述,是連線工廠受管理物件屬性。如果值中有空格,請將指令行的整個 attribute=value 部分括在引號內。
下列範例啟動用戶端應用程式 MyMQClient。此應用程式連線至連接埠 7677 上主機 OtherHost 的代理程式,覆寫應用程式設定的任何主機名稱和連接埠。
java -DimqAddressList=mq://OherHost:7677/jms MyMQClient
有時您無法使用指令行來指定屬性值。管理員可以設定受管理物件只允許讀取,或應用程式開發者以程式碼讓用戶端如此操作。若要瞭解啟動用戶端程式的最佳方法,就必須與應用程式開發者溝通。
移除代理程式實例本節提供在 Solaris 或 Linux 上移除代理程式實例的資訊。如需移除 Windows 服務的詳細資訊,請參閱移除當作 Windows 服務執行的代理程式。
若要移除代理程式實例,請在 imqbrokerd 指令中使用 -remove 選項。移除代理程式實例的指令格式如下:
imqbrokerd [options..] -remove instance
例如,如果代理程式的名稱是 myBroker,則指令如下:
imqbrokerd -name myBroker -remove instance
此指令移除該指定代理程式的整個實例目錄。
如需移除代理程式時可用的選項清單,請參閱指令參照中的 imqbrokerd 參照資訊。
如果 Solaris 或 Linux 上的代理程式設定為在系統啟動時自動啟動,請編輯配置檔案 /etc/imq/imqbrokerd.conf (Solaris) 或 /etc/opt/sun/mq/imqbrokerd.conf (Linux),並將 AUTOSTART 特性設定為 NO。