Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java System Message Queue 3 2005Q4 管理指南 

第 3 章
啟動代理程式和用戶端

安裝 Sun Java System Message Queue 並執行一些基本準備步驟後,就可以開始啟動代理程式和用戶端。代理程式的配置由一組配置檔案所管理,可由傳送給代理程式公用程式 (imqbrokerd) 的指令行選項加以覆寫;請參閱第 4 章「配置代理程式」,以取得更多資訊。

本章包含下列各節:


準備系統資源

啟動代理程式之前,必須預先執行兩個系統層級的作業:同步化系統時鐘,以及 (在 Solaris 或 Linux 平台上) 設定檔案描述元限制。以下各節將描述這些作業。

同步化系統時鐘

啟動任何代理程式或用戶端之前,必須先同步化會與 Message Queue 系統互動的所有主機的時鐘。如果您使用訊息逾時 (存在時間),則同步化尤為重要。不同步的時鐘時間戳記,可能會讓訊息無法按預期那樣過期或無法傳送訊息。同步化對代理程式叢集也十分重要。

您應該配置系統以執行時間同步化協定,例如簡易網路管理協定 (SNTP)。Solaris 和 Linux 的 xntpd 常駐程式和 Windows 的 W32Time 服務,通常可支援時間同步化功能。(如需配置此服務的詳細資訊,請參閱作業系統的文件)。代理程式執行後,請避免將系統時鐘往回設定。

設定檔案描述元限制

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

因此,檔案描述元限制會限制代理程式或用戶端可擁有的連線數目。依預設,Solaris 上的最大連線數目為 256,而 Linux 上為 1024。(實際上,因為會持續使用檔案描述元,所以連線限制會低於上述數目)。如果需要超過此限制的連線數目,您必須在執行用戶端或代理程式的每個 Shell 中,增加檔案描述元限制。如需如何執行此作業的詳細資訊,請參閱 ulimit 線上手冊。


啟動代理程式

您可以使用 Message Queue 指令行公用程式或 Windows [開始] 功能表,以互動方式啟動代理程式,或是安排在系統啟動時自動啟動代理程式。以下各節描述如何:

以互動方式啟動代理程式

您可以使用代理程式公用程式 (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 指令的語法、子指令和選項的完整資訊,請參閱代理程式公用程式。如需這項資訊的快速摘要,請輸入下列指令:

imqbrokerd -help


備註

如果您有 Sun Java System Message Queue Platform Edition 授權,可以使用 imqbrokerd 指令的 license 選項,啟動 Enterprise Edition 試用授權,試用 Enterprise Edition 功能 90 天。請指定授權名稱 try

imqbrokerd -license try

您每次啟動代理程式時都必須使用此選項,否則它會預設為標準 Platform Edition 授權。


自動啟動代理程式

除了明確地從指令行啟動代理程式之外,您還可以設定在系統啟動時自動啟動代理程式。執行此作業的方式會因執行代理程式的平台 (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 服務。然後就會在系統啟動時啟動代理程式,並且在背景中執行到系統關機為止。因此,您不必使用 imqbrokerd 指令啟動代理程式,除非您要啟動其他實例。

一個系統只能有一個代理程式執行為 Windows 服務。[工作管理員] 會將這類代理程式當作兩個可執行的程序列出:

在 Windows 系統上安裝 Message Queue 時,您可以將代理程式安裝為服務。安裝後,您可以使用服務管理員公用程式 (imqsvcadmin) 執行下列作業:

若要將啟動選項傳給代理程式,可在 imqsvcadmin 指令中使用 -args 引數。這等同於啟動代理程式中描述的 imqbrokerd 指令的 -D 選項。使用指令公用程式 (imqcmd) 以控制代理程式照常運作。

如需 imqsvcadmin 指令的語法、子指令和選項的完整資訊,請參閱服務管理員公用程式

重新配置代理程式服務

如下所示,重新配置安裝為 Windows 服務的代理程式:

    重新配置執行為 Windows 服務的代理程式
  1. 停止服務。
    1. 從 Windows [開始] 功能表的 [設定] 子功能表,選擇 [控制台]。
    2. 開啟 [系統管理工具] 控制台。
    3. 選取 [服務] 圖示以執行服務工具,然後從 [檔案] 功能表或快顯式環境功能表選擇 [開啟],或是直接連按兩下該圖示。
    4. 在 [服務 (本機)] 下方,選取 [訊息佇列代理程式] 服務,然後從 [執行] 功能表選擇 [內容]。
    5. 或者,可以在 [訊息佇列代理程式] 上按一下滑鼠右鍵,然後從快顯式環境功能表選擇 [內容],或是直接連按兩下 [訊息佇列代理程式]。不論何種方式,都會出現 [訊息佇列代理程式特性] 對話方塊。

    6. 在 [內容] 對話方塊中的 [一般] 標籤下方,按一下 [停止] 即可停止代理程式服務。
  2. 移除服務。
  3. 在指令行上輸入指令:

       imqsvcadmin remove

  4. 重新安裝服務,使用 -args 選項指定不同的代理程式啟動選項,或使用 -vmargs 選項指定不同的 Java 版本引數。
  5. 例如,要將服務的主機名稱與連接埠號碼變更為 broker17878,可以使用以下指令:

       imqsvcadmin install -args "-name broker1 -port 7878"

使用替代 Java 執行階段

您可以使用 imqsvcadmin 指令的 -javahome-jrehome 選項,指定替代 Java 執行階段的位置。(您也可以在服務的 [內容] 對話方塊視窗中,於 [一般] 標籤下方的 [啟動參數] 欄位中,指定這些選項)。


備註

[啟動參數] 欄位會將反斜線字元 (\) 視為退出字元,因此當您以反斜線作為路徑區隔字元時,必須輸入兩次:例如,

javahome c:\\j2sdk1.4.0


顯示代理程式服務啟動選項

若要決定代理程式服務的啟動選項,請在 imqsvcadmin 指令中使用 query 選項,如程式碼範例 3-1 所示。

程式碼範例 3-1 顯示代理程式服務啟動選項 

imqsvcadmin query

Service Message Queue Broker is installed.

Display Name:Message Queue Broker

Start Type:Automatic

Binary location:C:\Sun\MessageQueue\bin\imqbrokersvc.exe

JavaHome:c:\j2sdk1.4.0

Broker Args:-name broker1 -port 7878

服務啟動問題疑難排解

如果在啟動作為 Windows 服務的代理程式時出現錯誤,可以檢視已記錄的錯誤事件:

    查閱記錄的服務錯誤事件
  1. 開啟 Windows [系統管理工具] 控制台。
  2. 啟動 [事件檢視器] 工具。
  3. 選取 [應用程式事件記錄檔]。
  4. 從 [執行] 功能表選取 [重新整理],以顯示任何錯誤事件。


移除代理程式

移除代理程式的程序會因平台不同而異,將會在以下各節說明。

移除 Solaris 或 Linux 上的代理程式

若要移除 Solaris 或 Linux 平台上的代理程式實例,請在 imqbrokerd 指令中使用 -remove 選項。指令格式如下:

imqbrokerd [options...] -remove instance

例如,如果代理程式的名稱是 myBroker,則指令如下:

imqbrokerd -name myBroker -remove instance

此指令可刪除所指定代理程式的整個實例目錄。

如果代理程式設定為在系統啟動時自動啟動,請編輯配置檔案 /etc/imq/imqbrokerd.conf (Solaris) 或 /etc/opt/sun/mq/imqbrokerd.conf (Linux),並將 AUTOSTART 特性設定為 NO

如需 imqbrokerd 指令的語法、子指令和選項的詳細資訊,請參閱代理程式公用程式。如需這項資訊的快速摘要,請輸入下列指令:

移除 Windows 上的代理程式服務

若要移除執行為 Windows 服務的代理程式,請使用以下指令:

imqcmd shutdown bkr

若要關閉代理程式,請在後面加上:

imqsvcadmin remove

以移除服務。

或者,您可以透過 [系統管理工具] 控制台,來使用 Windows [服務] 工具,以停止和移除代理程式服務。

請在移除代理程式服務之後,重新啟動您的電腦。


啟動用戶端

啟動用戶端應用程式之前,您必須先向應用程式開發者取得系統的設定資訊。如果您啟動了 Java 用戶端應用程式,就必須正確設定 CLASSPATH 變數,並且確定已安裝正確的 .jar 檔案。「Message Queue Developer's Guide for Java Clients」中包含設定系統的一般步驟資訊,但是您的開發者可能會提供額外的資訊。

啟動 Java 用戶端應用程式時,請使用下列的指令行格式:

java clientAppName

啟動 C 用戶端應用程式時,請使用應用程式開發者提供的格式。

應用程式的文件應會提供與應用程式設定屬性值相關的資訊;您可能想要從指令行來覆寫部分屬性值。可能還要為任何使用 Java Naming and Directory Interface (JNDI) 查詢功能來尋找連線工廠的 Java 用戶端,在指令行中指定屬性。如果查詢功能傳回的連線工廠比應用程式還舊,表示連線工廠不支援較新的屬性。在這種情況下,Message Queue 會將這些屬性設為預設值;您可以在必要時,使用指令行來覆寫這些預設值。

若要從指令行指定 Java 應用程式的屬性值,請使用以下語法:

java [[-Dattribute=value]...] clientAppName

attribute 值必須如第 16 章「管理物件屬性參照」中所描述,是連線工廠管理物件屬性。如果該值中含有空格,請將指令行的整個 attribute=value 部分括在引號內。

以下範例可啟動稱為 MyMQClient 的用戶端應用程式,利用連接埠 7677 連線至主機 OtherHost 上的代理程式:

java -DimqAddressList=mq://OherHost:7677/jms MyMQClient

指令行中指定的主機名稱與連接埠,會覆寫應用程式本身的任何設定。

有時您無法使用指令行來指定屬性值。管理員可以將管理物件設為只能讀取,或應用程式開發者能以程式碼讓用戶端應用程式執行此作業。若要瞭解啟動用戶端程式的最佳方法,最好與應用程式開發者溝通交流。



上一頁      目錄      索引      下一頁     


文件號碼:819-3562。  Copyright © 2005 Sun Microsystems, Inc. 版權所有。