![]() |
Sun ONE Message Queue, Version 3.0.1 管理員指南 |
本指導重點介紹管理主控台這種管理 Sun ONE Message Queue (MQ) 訊息伺服器的圖形介面的使用。遵循本指導,您將學習如何執行以下作業:
- 啟動代理程式以及使用主控台連線至代理程式並管理它
- 在代理程式上建立實體目標
- 建立物件儲存區並使用主控台連線至此物件儲存區
- 將受管理物件新增至物件儲存區
本指導旨在設定執行簡單 JMS 相容應用程式 SimpleJNDIClient 所需的目標和受管理物件。在本指導的最後部分,您將執行此應用程式。
提供的本指導主要是為了指導您使用管理主控台執行基本的管理工作。本指導不能替代整個「MQ Developer's Guide」或此管理員指南的其他章。
使用圖形工具無法完成某些 MQ 管理工作;您將需要使用指令行公用程式執行以下此類作業:
- 配置某些代理程式屬性
某些代理程式屬性無法使用管理主控台來配置。可以如第 5 章「啟動與配置代理程式」或更新代理程式中所述來配置這些代理程式屬性。
- 建立代理程式叢集
請參閱使用叢集 (企業版),以獲得更多資訊。
- 管理使用者資料庫
請參閱認證使用者,以獲得更多資訊。
準備工作
您必須安裝 MQ 產品之後才可以啟動本指導。如需更多資訊,請參閱「MQ 安裝指南」。請注意,本指導用於 Windows,並針對 Unix 使用者加入備註。
在本指導中,選擇 [Item1] > [Item2] > [Item3] 表示您應下拉名為 Item1 的功能表,從此功能表中選擇 Item2,然後從 Item2 提供的選取中選擇 Item3。
啟動管理主控台
管理主控台是您用於執行以下作業的圖形工具:
- 建立代理程式的參考並連線至代理程式
- 管理代理程式
- 在代理程式上建立實體目標,代理程式可使用這些實體目標遞送訊息
- 連線至您可將 MQ 受管理物件放在其中的物件儲存區
受管理物件可讓您管理 JMS 相容應用程式的訊息傳送需要。如需更多資訊,請參閱 MQ 受管理物件。
啟動管理主控台
- 選擇 [開始] > [程式集] > [Sun ONE Message Queue 3.0] > [Administration]。
可能需要等待幾秒鐘之後才會顯示主控台視窗。
非 Windows 使用者:在指令提示符下輸入以下指令:
$IMQ_HOME/bin/imqadmin (在 Solaris 上為 /usr/bin/imqadmin)
- 花費幾秒鐘查看主控台視窗。
![]()
主控台視窗特徵為,頂部有一個功能表,緊挨功能表下面為工具列,視窗左側為導覽窗格,右側為較大的窗格 (此時正顯示識別 Sun ONE Message Queue 產品的圖形),視窗底部為狀態窗格。
沒有指導可以提供完全的資訊,因此讓我們首先找到取得管理主控台說明資訊的方法。
取得說明
在功能表列的最右端可以找到 [Help] 功能表。
顯示管理主控台說明資訊
- 下拉 [Help] 功能表並選擇 [Overview]。畫面上將會顯示說明視窗。
![]()
請注意說明資訊的組織方式。左側窗格顯示目錄表;右側窗格顯示您在左側所選取項目的內容。
查看 [Help] 視窗的右側窗格。它顯示管理主控台的框架視區,可識別每個主控台窗格的使用。
- 查看 [Help] 視窗的目錄窗格。它以三個區域管理主題:簡介、物件儲存區管理和代理程式管理。每個區域均包含檔案與資料夾。每個資料夾為包含多個標籤的對話方塊提供說明;每個檔案為單個對話方塊或標籤提供說明。
您的第一項主控台管理工作 (新增代理程式) 將是建立可透過主控台管理的代理程式的參考。但是開始之前,請先檢查線上說明以獲得資訊。
- 在 [Help] 視窗的目錄窗格中,按一下 [Add Broker] 項目。
請注意內容窗格已經變更。它此時包含介紹新增代理程式涵義的文字,還包含描述 [Add Broker] 對話方塊中每個欄位之使用的文字。欄位名稱以粗體文字顯示。
- 閱讀此說明文字。
- 關閉 [Help] 視窗。
使用代理程式
代理程式為 MQ 訊息傳送系統提供遞送服務。訊息遞送過程分為兩個階段:首先將訊息遞送至代理程式上的實體目標,然後再將其遞送至一個或多個使用用戶端。
使用代理程式包括以下工作:
- 啟動並配置代理程式
您可以從 Windows 上的 [開始] > [程式集] 功能表啟動代理程式,或透過使用 imqbrokerd 指令啟動。如果您使用 imqbrokerd 指令,則可以使用指令行選項來指定代理程式配置資訊。如果您使用 [程式集] 功能表,則可以使用主控台以及第 5 章「啟動與配置代理程式」中所述的其他方法來指定配置資訊。
註 您無法使用管理主控台啟動代理程式實例。
- 管理代理程式及其服務,方法為透過使用管理主控台或透過使用指令指令行公用程式 (imqcmd)
- 建立用戶端應用程式所需的實體目標
- 監視資源使用以提昇流量與可靠性
代理程式支援與應用程式用戶端以及管理用戶端的通訊。它透過不同的連線服務進行通訊,因此您可以將代理程式配置為執行這些服務的任何一項或者全部。如需有關連線服務的更多資訊,請參閱連線服務。
啟動代理程式
您無法使用管理主控台啟動代理程式。啟動代理程式的步驟如下所述 (也可參閱第 5 章 「啟動與配置代理程式」)。
啟動代理程式
- 選擇 [開始] > [程式集] > [Sun ONE Message Queue 3.0] > [Broker]。
非 Windows:輸入以下指令啟動代理程式。
%$IMQ_HOME/bin/imqbrokerd (在 Solaris 上為 /usr/bin/imqbrokerd)
畫面上將會顯示代理程式程序視窗。代理程式的名稱已指定,表明此代理程式已準備就緒。
![]()
- 返回至管理主控台視窗。此時,您可以將代理程式新增至主控台並連線至此代理程式。
在向管理主控台中的代理程式新增參考之前,您不必啟動此代理程式,但是您必須啟動代理程式之後才可以與其連線。
新增代理程式
新增代理程式可建立管理主控台中代理程式的參考。新增代理程式之後,您可以連線至此代理程式。
將代理程式新增至管理主控台
- 在導覽窗格中的 [Brokers] 上按一下滑鼠右鍵,然後選擇 [Add Broker]。
- 在 [Broker Label] 欄位中輸入 MyBroker。
這可提供識別管理主控台中代理程式的標籤。
![]()
請注意對話方塊中指定的預設主機名稱 (localhost) 和主要連接埠 (7676)。稍後當您配置連線工廠 (用戶端將用來設定與此代理程式的連線) 時,您將需要指定這些值。
保留 [Password] 欄位為空白。如果您在連線時指定密碼將更安全。
- 按一下 [OK] 以新增此代理程式。
查看導覽窗格。您剛新增的代理程式應已在 [Brokers] 下列出。代理程式圖示上的紅色 X 表示此代理程式目前尚未連線至主控台。
![]()
- 在 [MyBroker] 上按一下滑鼠右鍵,然後從蹦現式功能表中選擇 [Properties]。
畫面上將會顯示代理程式屬性對話方塊。您可以使用此對話方塊更新您在新增此代理程式時指定的任何屬性。
變更管理員密碼
當您連線至代理程式時,如果您未在新增代理程式時指定密碼,則系統會提示您提供密碼。為了更高的安全性,最好在連線之前變更預設管理員密碼 (admin)。
變更管理員密碼
- 開啟指令提示符號視窗,或者如果已開啟,請將其置於前面。
- 輸入以下指令,以用 abracadabra 替代您自己的密碼。這樣您指定的密碼便可取代預設密碼 admin。
imqusermgr update -u admin -p abracadabra
(在 Solaris 和 Linux 上,您必須為超級使用者才能執行此作業。)
變更會立即生效。每當您使用 MQ 指令行公用程式或管理主控台之一時,您必須指定新的密碼。
雖然用戶端與管理員使用不同的連線服務,但是系統還為用戶端指定了預設使用者名稱和密碼,以便您可以測試 MQ 而不必進行大量的管理設定。依預設,用戶端可以用使用者 guest,密碼 guest 連線至代理程式。但是,您應儘快為用戶端建立安全的使用者名稱和密碼。請參閱認證使用者,以獲得更多資訊。
連線至代理程式
連線至代理程式
- 在 MyBroker 上按一下滑鼠右鍵,然後選擇 [Connect to Broker]。
畫面上將會顯示對話方塊,可讓您指定您的名稱和密碼。
![]()
- 在 [Password] 欄位中輸入 admin,或輸入您在變更管理員密碼中為密碼指定的任何值。
指定使用者名稱 admin 並提供正確的密碼可讓您連線至代理程式,並擁有管理權限。
- 按一下 [OK] 以連線至此代理程式。
連線至此代理程式之後,您可以從 [Actions] 功能表中選擇以獲得有關代理程式的資訊、暫停並繼續代理程式、關閉並重新啟動代理程式以及與代理程式中斷連線。
檢視連線服務
透過代理程式提供的連線服務和它支援的實體目標可以識別此代理程式。
檢視可用的連線服務
- 在導覽窗格中選取 [Services]。
可用的服務會在結果窗格中列出。對於每種服務,均會提供其名稱、連接埠號與狀態。
![]()
- 按一下結果窗格中的 jms 服務選取此服務。
- 下拉 [Actions] 功能表並注意反白顯示的項目。
您便可以暫停 jms 服務或檢視與更新其屬性。
- 從 [Actions] 功能表中選擇 [Properties]。
請注意,透過使用 [Service Properties] 對話方塊,您可以為服務指定靜態連接埠號,還可以變更配置給此服務的最小和最大執行緒數量。
![]()
- 按一下 [OK] 或 [Cancel] 以關閉 [Properties] 對話方塊。
- 在結果窗格中選取 admin 服務。
- 下拉 [Actions] 功能表。
請注意您無法暫停此服務 (暫停項目已停用)。admin 服務是管理員與代理程式的連結。如果暫停此服務,您將無法再存取代理程式。
- 選擇 [Actions] > [Properties] 以檢視 admin 服務的屬性。
- 當您完成之後,按一下 [OK] 或 [Cancel]。
將實體目標新增至代理程式
您必須在代理程式上明確建立實體目標,以便 JMS 相容應用程式可以正常執行。如果代理程式已啟用目標自動建立功能 (此功能可讓代理程式動態地建立實體目標),則您無需明確建立實體目標。
在開發環境中,可以使用目標自動建立功能。但是在生產設定中,最好應關閉目標自動建立功能並讓代理程式使用您已明確建立的實體目標。這樣可讓您 (管理員) 充分地瞭解在代理程式上使用的目標。
透過設定 imq.autocreate.topic 或 imq.autocreate.queue 屬性,您可以控制代理程式是否可以新增自動建立的目標。如需更多資訊,請參閱自動建立的 (對應管理員建立的) 目標。
在本節指導中,您可將實體目標新增至代理程式。您應注意指定給此目標的名稱;稍後當您建立與此實體目標相對應的受管理物件時將需要此名稱。
將佇列目標新增至代理程式
- 在 MyBroker 的 [Destinations] 節點上按一下滑鼠右鍵,然後選擇 [Add Broker Destination]。
畫面上將會顯示以下對話方塊:
![]()
- 在 [Destination Name] 欄位中輸入 MyQueueDest。
- 如果尚未選取 [Queue] 單選按鈕,請選取此按鈕。
- 確定將 [Queue Delivery Policy] 選取為 [Single]。
- 按一下 [OK] 以新增此實體目標。
此時此目標將會在結果窗格中出現。
使用實體目標
一旦您已在代理程式上新增實體目標,您便可以進行以下任何工作,如以下程序中所述:
- 檢視與更新實體目標的屬性
- 清除目標上的訊息
- 刪除目標
檢視實體目標的屬性
- 選取 MyBroker 的 [Destinations] 節點。
- 在結果窗格中選取 [MyQueueDest]。
- 選擇 [Actions] > [Properties]。
畫面上將會顯示以下對話方塊:
![]()
請注意,您僅可變更與遞送至佇列的訊息大小和數量有關的佇列屬性。
- 按一下 [Cancel] 以關閉此對話方塊。
從目標中清除訊息
- 在結果窗格中選取實體目標。
- 選擇 [Actions] > [Purge Messages]。
畫面上將會顯示確認對話方塊。
清除訊息可移除訊息並保留空白目標。
刪除目標
- 在結果窗格中選取實體目標。
- 選擇 [Edit] > [Delete]。
刪除目標可清除此目標上的訊息並移除此目標。
取得有關主題目標的資訊
有關主題目標的對話方塊包括列示持久訂閱資訊的附加標籤。
![]()
您可以使用此對話方塊:
- 清除持久訂閱以及移除與持久訂閱相關聯的所有訊息。
- 刪除持久訂閱、清除與持久訂閱相關聯的所有訊息以及移除持久訂閱。
使用物件儲存區
物件儲存區為 LDAP 目錄伺服器或檔案系統儲存區 (檔案系統中的目錄),用於儲存 MQ 受管理物件,這些受管理物件封裝 MQ 特定的有關用戶端應用程式所用物件的實施與配置資訊。
雖然可以在用戶端節點中創設與配置受管理物件,但是您 (管理員) 最好在物件儲存區中建立、配置並儲存這些物件,用戶端應用程式可透過標準 JNDI 查找程式碼存取此物件儲存區。這樣可讓用戶端程式碼獨立於供應程式。
如需有關受管理物件的更多資訊,請參閱 MQ 受管理物件。
您無法使用管理主控台建立物件儲存區。您必須提前進行此作業,如以下一節中所述。
新增物件儲存區
新增物件儲存區可在管理主控台中建立現有物件儲存區的參考。即使您退出並重新啟動主控台,此參考仍可保留。
新增檔案系統物件儲存區
- 如果您的 C 磁碟機上還沒有名為 Temp 的資料夾,請現在建立一個。
本指導中所用範例應用程式假設物件儲存區為 C 磁碟機上名為 Temp 的資料夾。一般來說,檔案系統物件儲存區可以為任何磁碟機上的任何目錄。
非 Windows:您可以使用 /tmp 目錄,此目錄應已存在。
- 在 [Object Stores] 上按一下滑鼠右鍵,然後選擇 [Add Object Store]。
畫面上將會顯示以下對話方塊:
![]()
- 在名為 [ObjectStoreLabel] 的欄位中輸入 MyObjectStore。
此項僅可為管理主控台中的物件儲存區顯示提供標籤。
在以下步驟中,您將需要輸入 JNDI 名稱/值對。JMS 相容應用程式將使用這些名稱/值對來查找受管理物件。
- 從 [Name] 下拉式功能表中選擇 java.naming.factory.initial。
此屬性可讓您指定要使用何種 JNDI 服務供應程式。例如,檔案系統服務供應程式或 LDAP 服務供應程式。
- 在 [Value] 欄位中輸入以下內容
com.sun.jndi.fscontext.RefFSContextFactory
這表示您將使用檔案系統儲存區。(對於 LDAP 儲存區,您將指定 com.sun.jndi.ldap.LdapCtxFactory。)
在生產環境中,您可能要使用 LDAP 目錄伺服器作為物件儲存區。如需有關設定伺服器以及進行 JNDI 查找的資訊,請參閱物件儲存區屬性。
- 按一下 [Add] 按鈕。
請注意此時屬性摘要窗格中列出的屬性及其值。
- 從 [Name] 下拉式功能表中選擇 java.naming.provider.url。
此屬性可讓您指定物件儲存區的確切位置。對於檔案系統類型的物件儲存區,此項將為現有目錄的名稱。
- 在 [Value] 欄位中輸入以下內容
file:///C:/Temp
(在 Solaris 和 Linux 上為 file:///tmp)
- 按一下 [Add] 按鈕。
請注意此時屬性摘要窗格中列出的屬性及其值。如果您要使用 LDAP 伺服器,您可能還必須指定認證資訊;而檔案系統儲存區庫則無需此項。
- 按一下 [OK] 以新增此物件儲存區。
- 如果尚未在導覽窗格中選取節點 [MyObjectStore],請現在選取它。
管理主控台此時顯示如下:
![]()
此物件儲存區已在導覽窗格中列出,儲存區內容、目標以及連線工廠已在結果窗格中列出。我們尚未將任何受管理物件新增至此物件儲存區,這可在結果窗格的 [Count] 欄中顯示。
導覽窗格中的物件儲存區圖示上畫有紅色的 X。這表示此物件儲存區已中斷連線。在使用物件儲存區之前,您將需要與其連線。
檢查物件儲存區屬性
當中斷管理主控台與物件儲存區的連線時,您可以檢查與變更此物件儲存區的某些屬性。
顯示物件儲存區的屬性
- 在導覽窗格中的 [MyObjectStore] 上按一下滑鼠右鍵。
- 從蹦現式功能表中選擇 [Properties]。
畫面上將會顯示對話方塊,此對話方塊顯示您新增此物件儲存區時指定的所有屬性。您可以變更這些屬性中的任何一項,然後按一下 [OK] 以更新舊的資訊。
- 按一下 [OK] 或 [Cancel] 以關閉此對話方塊。
連線至物件儲存區
您必須連線至物件儲存區之後才可以將物件新增至此儲存區。
連線至物件儲存區
- 在導覽窗格中的 [MyObjectStore] 上按一下滑鼠右鍵。
- 從蹦現式功能表中選擇 [Connect to Object Store]。
請注意物件儲存區的圖示已不再有叉號。此時您可以將物件、連線工廠和目標新增至此物件儲存區。
新增連線工廠受管理物件
您可以使用管理主控台建立和配置連線工廠。用戶端程式碼使用連線工廠連線至代理程式。透過配置連線工廠,您可以控制連線工廠通常建立的連線運作方式。
如需有關配置連線工廠的資訊,請參閱線上說明與「MQ Developer's Guide」。
註 管理主控台僅列出與顯示 MQ 受管理物件。如果物件儲存區應包含的非 MQ 物件與您想新增的受管理物件具有相同的查找名稱,則當您嘗試新增作業時會出現錯誤。
將連線工廠新增至物件儲存區
- 如果尚未連線,請連線至 MyObjectStore (請參閱連線至物件儲存區)。
- 在 [Connection Factories] 節點上按一下滑鼠右鍵,然後選擇 [Add Connection Factory Object]。
畫面上將會顯示 [Add Connection Factory Object] 對話方塊。
![]()
- 在 [LookupName] 欄位中輸入名稱「MyQueueConnectionFactory」。
此名稱為用戶端程式碼查找連線工廠時使用的名稱,如 SimpleAdmin.java 的以下行中所示:
qcf=(javax.jms.QueueConnectionFactory)
ctx.lookup("MyQueueConnectionFactory")
- 從下拉式功能表中選取 [QueueConnectionFactory],以指定連線工廠的類型。
- 在 [Broker Host Name] 與 [Broker Host Port] 欄位中,輸入用戶端要與其連線的代理程式的主機名稱和連接埠。
在本指導中,用戶端連線至預設代理程式,即使用連接埠 7676 的 localhost 上的代理程式,因此您不必變更這些欄位。
- 按一下此對話方塊的所有標籤,以查閱您可以為連線工廠配置的資訊種類。使用 [Add Connection Factory Object] 對話方塊右下角的 [Help] 按鈕,以獲得有關個別標籤的資訊。此時請勿變更任何預設值。
- 按一下 [OK] 以建立此佇列連線工廠。
- 查看結果窗格:已列出新建立的連線工廠的查找名稱與類型。
新增目標受管理物件
目標受管理物件與代理程式上的實體目標相關聯;它們指向那些目標,也就是說可讓用戶端查找並找到實體目標,而不依賴於供應程式特定的命名與配置那些目標的方法。
當 JMS 用戶端傳送訊息時,它會查找 (或創設) 目標受管理物件,並以 JMS API 的 send() 方法參考此物件。然後,代理程式負責將訊息遞送至與受管理物件相關聯的實體目標:
- 如果您已建立與此受管理物件相關聯的實體目標,則代理程式會將訊息遞送至此實體目標。
- 如果您尚未建立實體目標且已啟用實體目標的自動建立功能,則代理程式自身會建立實體目標並將訊息遞送至此目標。
- 如果您尚未建立實體目標且已停用實體目標的自動建立功能,則代理程式無法建立實體目標,亦無法遞送訊息。
在本指導的下一部分,您將要新增與您先前新增的實體目標相對應的受管理物件。
將目標新增至物件儲存區
- 在導覽窗格的中的 [Destinations] 節點上按一下滑鼠右鍵。
- 選擇 [Add Destination Object]。
管理主控台會顯示 [Add Destination Object] 對話方塊,您可用來指定有關此物件的資訊。
![]()
- 在 [Lookup Name] 欄位中輸入「MyQueue」。
使用此查找名稱可以找到正在使用 JNDI 查找呼叫的物件。在範例應用程式中,此呼叫如下:
queue=(javax.jms.Queue)ctx.lookup("MyQueue");
- 為 [Destination Type] 選擇 [Queue] 單選按鈕。
- 在 [Destination Name] 欄位中輸入 MyQueueDest。
此名稱為您在代理程式上新增實體目標時指定的名稱。
- 按一下 [OK]。
- 在導覽窗格中選取 [Destinations],並注意有關剛新增的佇列目標受管理物件的資訊在結果窗格中的顯示方式。
![]()
受管理物件屬性
若要檢視或更新受管理物件的屬性,您需要在導覽窗格中選取 [Destinations] 或 [Connection Factories],在結果窗格中選取特定的物件然後選擇 [Actions] > [Properties]。
檢視或更新目標物件的屬性
- 在導覽窗格中選取 [Destinations]。
- 在結果窗格中選取 [MyQueue]。
- 選擇 [Actions] > [Properties] 以檢視 [Destination Object Properties] 對話方塊。
請注意您僅可以變更目標名稱與描述的值。若要變更查找名稱,您必須刪除此物件,然後新增具有所需查找名稱之新的佇列受管理物件。
![]()
更新主控台資訊
無論您使用物件儲存區還是代理程式,均可以透過選擇 [View] > [Refresh] 來更新任何元素或元素群組的可視顯示。
執行範例應用程式
提供的範例應用程式 SimpleJNDIClient 可用於本指導。它使用您在上述指導中建立的受管理物件與目標:名為 MyQueueDest 的佇列目標、名為 MyQueueConnectionFactory 的佇列連線工廠受管理物件和名為 MyQueue 的佇列受管理物件。
此程式碼建立簡單的佇列傳送者和接收者,並傳送和接收「Hello World」訊息。
執行 SimpleJNDIClient 應用程式
- 確定 JAVA_HOME 環境變數指向安裝 JDK 的目錄。
- 使包含 SimpleJNDIClient 應用程式的目錄成為目前目錄;例如:
cd IMQ_HOME/demo/jms (在 Solaris 上為 /usr/demo/imq/jms)
您應發現 SimpleJNDIClient.class 檔案已存在。(如果您要變更此應用程式,將需要使用「MQ Developer's Guide 快速入門指導」中的用於編譯用戶端應用程式的指令重新編譯它。)
- 將 CLASSPATH 變數設定為包括目前目錄,此目錄包含 SimpleJNDIClient.java 和以下 jar 檔案:jms.jar、imq.jar 與 fscontext.jar。
- 執行此應用程式之前,請開啟來源檔 SimpleJNDIClient.java 並閱讀全部來源。
它很簡短但已充分進行說明,並且有關您使用本指導已建立的受管理物件和目標的使用方法亦相當清楚。
- 執行 SimpleJNDIClient 應用程式。
C:> java SimpleJNDIClient (在 Windows 上)
% java SimpleJNDIClient file:///tmp (在 Solaris 和 Linux 上)
如果此應用程式執行成功,您應看到以下輸出:
==================================================
$JAVA SimpleJDNIClient file:///tmp
Usage:java SimpleJDNIClinet [Context.PROVIDER_URL]
On Unix:
java SimpleJDNIClient file:///tmp
On Windows:
java SimpleJDNIClient file:///C:Temp
Using Windows default file:///C/Temp for Context.PROVIDER_URL
Publishing a message to Queue:MyQueueDest
Received the following message:Hello World.
==================================================