Sun Java System Message Queue 3.7 UR1 管理指南

第 1 部分 Message Queue 管理簡介

第 1 章 管理作業和工具

本章提供 Sun Java™ System Message QueueTM 管理作業及執行這些作業之工具的簡介,說明重點為指令行管理公用程式的一般功能。包含下列各節:

管理作業

一般執行的管理作業,會依執行 Message Queue 所在環境的本質而定。開發及測試 Message Queue 應用程式的軟體開發環境需求,與部署此類應用程式以完成具體工作所需要的生產環境截然不同。後續章節將摘要說明這兩種不同環境類型的一般管理需求。

開發環境中的管理

開發環境重點強調的是彈性。Message Queue 訊息服務主要用於測試開發中的應用程式。因為程式設計師通常會自行管理其系統,所以一般不太需要管理。這種環境一般具有下列特徵:

生產環境中的管理

在必須以可靠方式部署和執行應用程式的生產環境中,管理更為重要。執行的管理作業依訊息傳送系統及其必須支援之應用程式的複雜性而定。這種作業可分為兩大類:設定作業與維護作業。

設定作業

生產環境的管理設定作業,一般包含下列部分或全部的項目:

管理員安全性

一般安全性

受管理物件

代理程式叢集

永久性

記憶體管理

維護作業

因為應用程式的效能、可靠性及安全性在生產環境中極為重要,所以必須透過持續不斷的管理維護作業,緊密監視並控制訊息服務資源,這些作業包括:

代理程式管理與調校

受管理物件

用戶端管理

管理工具

Message Queue 管理工具分為兩類:

指令行公用程式

所有的 Message Queue 公用程式都可透過指令行介面存取。公用程式指令共用一般的格式、語法慣例與選項。這些部分包括:

如需使用這些公用程式的詳細資訊,請參閱第 13 章, 指令行參照

管理主控台

Message Queue 管理主控台結合指令公用程式與物件管理員公用程式的部分功能。您可使用它執行下列工作:

但是,您無法使用管理主控台執行啟動代理程式、建立代理程式叢集、管理 JDBC 資料庫或使用者儲存庫、安裝當成 Windows 服務的代理程式或產生 SSL 憑證等作業。若要執行上述作業,您必須使用其他指令行公用程式 (代理程式、資料庫管理者、使用者管理員、服務管理員及金鑰工具),此類程式無法從遠端操作,同時必須與受其管理的代理程式在同一部主機上執行 (請參閱圖 1–1)。

圖 1–1 本機與遠端管理公用程式

本圖表說明 imqcmd 和 imqobjmgr 常駐在遠端主機,而其他所有公用程式必須常駐在代理程式的主機。

如需簡要實用的管理主控台介紹,請參閱第 2 章, 快速入門指導。更多詳細使用資訊,請參閱其各自的說明功能。

第 2 章 快速入門指導

本快速入門指導將引導您使用 Message QueueTM 管理主控台 (管理訊息代理程式及物件存放區的圖形化介面),進行一些基本的管理作業,讓您對 Message Queue 管理有初步的認識。本章包含下列各節:

本指導旨在設定當執行簡單 JMS 相容應用程式 HelloWorldMessageJNDI 時,所需的實體目標和受管理物件。此應用程式在範例應用程式目錄 (Solaris 和 Windows 平台的 demo 或 Linux 的 examples;請參閱附錄 AMessage QueueTM 資料的特定平台位置) 的 helloworld 子目錄中。您會在本指導的最後階段執行此應用程式。


備註 –

必須先安裝 Message Queue 產品,才能繼續本指導。如有需要,請參閱「Message Queue 安裝指南」中的說明。


本指導僅為基本簡介,無法取代文件的功用。遵循本指導中所述各步驟,將學習到如何執行下列作業:


備註 –

本指導所提供的說明係針對 Windows 平台。必要時,會為其他平台使用者提供補充說明。


有些管理作業無法使用管理主控台完成。類似下列的工作,必須使用指令行公用程式來執行:

本線上手冊會在後續各章討論上述所有工作。

啟動管理主控台

若要啟動管理主控台,請使用下列方法之一:

顯示 [管理主控台] 視窗需等待數秒 (請參閱圖 2–1)。

圖 2–1 管理主控台視窗

Sun Java System Message Queue 的啟動畫面。左側窗格為樹狀結構檢視,右側窗格為內容。

請花幾秒鐘的時間檢視 [管理主控台] 視窗。頂端有一個功能表列,功能表列下方為工具列,左側為瀏覽窗格,右側為結果窗格 (此時顯示的是表示 Sun Java System Message Queue 產品的圖形),底部則為狀態窗格。


備註 –

使用 [管理主控台] 時,您可使用 [檢視] 功能表的 [更新] 指令,更新任何元素或元素群組的可視顯示畫面,例如代理程式清單或物件存放區清單。


管理主控台線上說明

在 [管理主控台] 的說明功能中,包含有關如何使用主控台執行管理作業的完整資訊。若要使用說明功能,請從功能表列最右側的 [說明] 下拉式功能表中選擇 [概述]。即會顯示 [管理主控台] 的 [說明] 視窗 (圖 2–2)。

圖 2–2 管理主控台說明視窗

Message Queue 管理主控台說明視窗。左側是可用說明主題的樹狀結構檢視:右側是說明主題內容視窗。

[說明] 視窗左側的瀏覽窗格,將所有主題區分為 3 個區域:Message Queue 管理主控台、Message Queue 物件存放區管理,以及 Message Queue 代理程式管理。各區域內皆有檔案及資料夾。資料夾內是多重標籤對話方塊的說明,檔案中則是簡單對話方塊或個別標籤的說明。當您選擇瀏覽窗格中的項目時,右側的結果窗格就會顯示該項目的內容。選擇 [概述] 項目時,會在結果窗格中顯示 [管理主控台] 視窗的框架檢視,並指明該視窗的各個窗格,如圖所示。

使用管理主控台執行的第一項工作,即是建立代理程式的參照。但在開始之前,請先查看 [說明] 視窗的資訊。按一下 [說明] 視窗瀏覽窗格中的 [增加代理程式] 項目,結果窗格的內容會變更為顯示文字,解釋增加代理程式的涵義,並說明 [增加代理程式] 對話方塊中各欄位的用法。請閱讀說明文字,然後關閉 [說明] 視窗。

使用代理程式

本小節描述如何使用管理主控台,以連線至訊息代理程式並管理訊息代理程式。

啟動代理程式

您無法使用管理主控台啟動代理程式。請使用下列其中一種方法:

如果使用 Windows 的 [開始] 功能表,會出現一個指令視窗,其中顯示如下的內容表示代理程式已就緒:

Loading persistent data...
Broker “imqbroker@stan:7676 ready.

重新啟動 [管理主控台] 視窗。此時可將代理程式增加至主控台,並且與其連線。當您在 [管理主控台] 中為代理程式新增參照時,不必先啟動代理程式;但若要連線至代理程式,就必須先啟動它。

將代理程式新增至管理主控台

新增代理程式可建立管理主控台中代理程式的參考。增加代理程式之後,您可以連線至此代理程式。

Procedure若要將代理程式新增至管理主控台

  1. 按一下 [管理主控台] 視窗瀏覽窗格中的 [代理程式清單] 項目,然後選擇 [動作] 功能表的 [增加代理程式]。

    您也可以在 [代理程式清單] 上按一下滑鼠右鍵,然後從快顯功能表中選擇 [增加代理程式]。不論何種方式,都會出現 [增加代理程式] 對話方塊 (圖 2–3)。

    圖 2–3 [增加代理程式] 對話方塊

    [增加代理程式] 對話方塊。按鈕從左至右依次為:[確定]、[重設為預設值]、[取消] 和 [說明]。

  2. 在 [代理程式標籤] 欄位中輸入代理程式名稱。

    這可提供識別管理主控台中代理程式的標籤。

    請注意對話方塊中指定的預設主機名稱 (localhost) 和主連接埠 (7676)。稍後當您配置用戶端用以與此代理程式連線的連線工廠時,必須指定這些值。

    在此練習中,請將名稱 MyBroker 鍵入至 [代理程式標籤] 欄位。[密碼] 欄位請留白,在進行連線時指定密碼較為安全。

  3. 按一下 [確定] 以增加代理程式,並結束對話方塊。

    新的代理程式會出現在瀏覽窗格的 [代理程式清單] 下,如圖 2–4 中所示。代理程式圖示上紅色的 X,表示代理程式目前尚未連線至管理主控台。

    圖 2–4 管理主控台視窗中顯示的代理程式

    [Message Queue 管理主控台] 視窗。已在樹狀結構檢視中選擇代理程式。

    只要增加了代理程式,就可使用 [動作] 功能表 (或快顯功能表) 的 [特性] 指令,顯示 [代理程式特性] 對話方塊 (與將代理程式新增至管理主控台中所顯示的 [增加代理程式] 對話方塊類似),以便您檢視或修改其中任一特性。

連線至代理程式

現在已將代理程式增加至管理主控台,接下來即可繼續連線作業。

Procedure連線至代理程式

  1. 按一下 [管理主控台] 視窗瀏覽窗格中的代理程式名稱,然後選擇 [動作] 功能表的 [連線至代理程式]。

    您也可以在代理程式名稱上按一下滑鼠右鍵,然後從快顯功能表中選擇 [連線至代理程式]。不論何種方式,都會出現 [連線至代理程式] 對話方塊 (圖 2–5)。

    圖 2–5 [連線至代理程式] 對話方塊

    [連線至代理程式] 對話方塊。按鈕從左至右依次為:[確定]、[取消] 和 [說明]。

  2. 請輸入用以連線至代理程式的使用者名稱及密碼。

    對話方塊一開始會顯示預設的使用者名稱 admin。在實際情況中,您應儘快建立安全的使用者名稱和密碼 (請參閱使用者認證);在此練習中,只需使用預設值即可。

    與預設使用者名稱相關聯的密碼也是 admin,請鍵入至對話方塊的 [密碼] 欄位。如此將會連線至該代理程式,並擁有管理權限。

  3. 按一下 [確定] 以連線至代理程式,並結束對話方塊。

    只要連線至代理程式,即可使用 [動作] 功能表 (或快顯功能表) 的指令,針對選取的代理程式執行下列作業:

    • [暫停代理程式] 會暫時停止執行中的代理程式作業。

    • [重新繼續代理程式] 會重新繼續執行已暫停的代理程式作業。

    • [重新啟動代理程式] 會重新初始化,並重新啟動代理程式。

    • [關閉代理程式] 會終止代理程式作業。

    • [查詢/更新代理程式] 會顯示或修改代理程式的配置特性。

    • [取消與代理程式的連線] 會終止代理程式和管理主控台之間的連線。

檢視連線服務

透過代理程式提供的連線服務和它支援的實體目標可以識別此代理程式。

Procedure檢視可用的連線服務

  1. 在 [管理主控台] 視窗的瀏覽窗格中,選擇代理程式名稱下的 [服務清單]。

    結果窗格會出現可用服務的清單 (請參閱圖 2–6),顯示名稱、連接埠號以及各服務目前的狀態。

    圖 2–6 檢視連線服務

    [Message Queue 管理主控台] 視窗。已選取代理程式服務節點。節點內容在內容窗格中顯示。

  2. 在結果窗格中按一下服務名稱,以選擇該項服務。

    在此練習中,請選擇名稱 jms

  3. 從 [動作] 功能表中選擇 [特性]。

    即會出現 [服務特性] 對話方塊 (圖 2–7)。您可使用此對話方塊為此服務指定靜態連接埠號,並變更為其配置之最小及最大執行緒數。

    圖 2–7 [服務特性] 對話方塊

    [服務特性] 對話方塊。按鈕從左至右依次為:[確定]、[取消] 和 [說明]。

    在此練習中,請勿變更任何連線服務的特性。

  4. 按一下 [確定] 以接受新的特性值,並結束對話方塊。

    [動作] 功能表也包含暫停和重新繼續服務的指令。但是,當您選擇 admin 服務並且下拉 [動作] 功能表時,[暫停服務] 指令會是停用狀態。這是因為 admin 服務是 [管理主控台] 中與代理程式的連結:如果暫停此服務,將無法再存取代理程式。

使用實體目標

實體目標是訊息代理程式上的一個位置,其中保留接收自訊息產生器的訊息,以便稍後傳送至一個或多個訊息用戶。目標會依使用的訊息傳送網域分為兩種:佇列 (點對點網域) 與主題 (發佈/訂閱網域)。如需有關訊息傳送網域及其相關聯目標的進一步討論,請參閱「Message Queue 技術摘要」。

建立實體目標

依預設,訊息代理程式配置為在訊息產生器或用戶嘗試存取不存在的目標時,會自動建立新的實體目標。在軟體開發環境中測試用戶端程式碼時,這類自動建立的目標非常好用。但是在生產設定中,不但建議停用自動建立目標,最好所有目標都只能由管理員建立。下列程序說明如何將這類管理員建立的目標增加至代理程式。

Procedure將實體目標新增至代理程式

  1. 在 [管理主控台] 視窗的瀏覽窗格中按一下代理程式名稱下的 [目標] 項目,然後選擇 [動作] 功能表的 [增加代理程式目標]。

    或者,您也可以在 [目標] 上按一下滑鼠右鍵,然後從快顯功能表中選擇 [增加代理程式目標]。不論何種方式,都會出現 [增加代理程式目標] 對話方塊 (圖 2–8)。

    圖 2–8 [增加代理程式目標] 對話方塊

    [增加代理程式目標] 對話方塊。按鈕從左至右依次為:[確定]、[重設為預設值]、[取消] 和 [說明]。

  2. 在 [目標名稱] 欄位中輸入該實體目標的名稱。

    請記下指定給此目標的名稱;稍後當您建立與此實體目標相對應的受管理物件時,將需要這個名稱。

    在此練習中,請鍵入名稱 MyQueueDest

  3. 選擇 [佇列] 或 [主題] 單選按鈕,以指定要建立的目標類型。

    在此練習中,請選擇 [佇列] (如果尚未選取)。

  4. 按一下 [確定] 以增加實體目標,並結束對話方塊。

    該實體目標會隨即出現在結果窗格中。

檢視實體目標特性

您可以在管理主控台上,使用 [動作] 功能表的 [特性] 指令,檢視或修改實體目標的特性。

Procedure檢視或修改實體目標的特性

  1. 在 [管理主控台] 視窗的瀏覽窗格中,選擇代理程式名稱下的 [目標]。

    結果窗格會出現可用實體目標的清單,其中顯示各目標的名稱、類型,以及目前的狀態。

  2. 在結果窗格中按一下實體目標名稱,以選擇該目標。

  3. 從 [動作] 功能表中選擇 [特性]。

    即會出現 [代理程式目標屬性] 對話方塊 (圖 2–9),顯示所選實體目標的目前狀態及配置資訊。您可使用此對話方塊變更各項配置特性,如該目標能容納的訊息、產生器及用戶上限。

    圖 2–9 [代理程式目標屬性] 對話方塊

    [代理程式目標屬性] 對話方塊。按鈕從左至右依次為:[確定]、[取消] 和 [說明]。

    在此練習中,請勿變更任何目標特性。

    對於主題目標,[代理程式目標屬性] 對話方塊中會另有一個 [長期訂閱] 標籤。按一下此標籤即會顯示 [長期訂閱] 面板 (圖 2–10),列出目前與指定主題相關聯之所有長期訂閱的相關資訊。

    圖 2–10 [長期訂閱] 面板

    用於列出有關長期訂閱資訊的對話方塊。圖以文字介紹。按鈕從左至右依次為:[確定]、[取消] 和 [說明]。

    您可使用 [長期訂閱] 面板中的 [清除] 和 [刪除] 按鈕,執行下列作業:

    • 清除所有與長期訂閱相關聯的擱置訊息

    • 移除主題的長期訂閱

    佇列目標的 [長期訂閱] 標籤是停用的。

  4. 按一下 [確定] 以接受新的特性值,並結束對話方塊。

清除實體目標的訊息

清除實體目標的訊息,會移除所有與該目標相關聯的擱置訊息,從而清空該目標。

Procedure清除實體目標的訊息

  1. 在 [管理主控台] 視窗的瀏覽窗格中,選擇代理程式名稱下的 [目標]。

    結果窗格會出現可用實體目標的清單,其中顯示各目標的名稱、類型,以及目前的狀態。

  2. 在結果窗格中按一下目標名稱,以選擇該目標。

  3. 從 [動作] 功能表中選擇 [清除訊息]。

    即會出現確認對話方塊,要求您確認是否繼續該作業。

  4. 按一下 [是] 以確認作業,並結束確認對話方塊。

刪除實體目標

刪除目標會先清除目標的全部訊息,然後銷毀目標本身,將此目標從所屬的代理程式中永久移除。

Procedure刪除實體目標

  1. 在 [管理主控台] 視窗的瀏覽窗格中,選擇代理程式名稱下的 [目標]。

    結果窗格會出現可用目標的清單,其中顯示各目標的名稱、類型,以及目前的狀態。

  2. 在結果窗格中按一下目標名稱,以選擇該目標。

  3. 從 [編輯] 功能表中選擇 [刪除]。

    即會出現確認對話方塊,要求您確認是否繼續該作業。

  4. 按一下 [是] 以確認作業,並結束確認對話方塊。

    在此練習中,請勿刪除先前建立的目標 MyQueueDest;請按一下 [否] 結束確認對話方塊,以免執行刪除作業。

使用物件存放區

物件存放區用以儲存 Message Queue 受管理物件,其中封裝特定 Message Queue 提供者的專用實作及配置資訊。物件存放區可以是簡易目錄存取協定 (LDAP) 目錄伺服器,也可以是本機檔案系統的目錄。

雖然可以直接從用戶端應用程式的程式碼內,創設與配置受管理物件,但一般慣用的方式是讓管理員建立與配置這些物件,並將其儲存在物件存放區中,讓用戶端應用程式能夠使用 Java Naming and Directory Interface (JNDI) 存取這些物件。這樣可讓用戶端程式碼獨立於提供者之外。

新增物件存放區

雖然管理主控台可讓您管理物件存放區,但是無法用來建立物件存放區;在建立物件存放區之前,用作物件存放區的 LDAP 伺服器或檔案系統目錄必須已經存在。然後,才能夠將現有的物件存放區增加至管理主控台,並為其建立參照,以便在主控台中操作此物件存放區。


備註 –

本章使用的範例應用程式,會假設物件存放區位於 C 磁碟機的 Temp 目錄中。如果 C 磁碟機上還沒有名為 Temp 的資料夾,請先建立一個,再進行後續的練習。(在非 Windows 平台上,您可以使用 /tmp 目錄,此目錄應已存在。)


Procedure將物件存放區新增至管理主控台

  1. 按一下 [管理主控台] 視窗瀏覽窗格中的 [物件存放區清單] 項目,然後選擇 [動作] 功能表的 [增加物件存放區]。

    您也可以在 [物件存放區清單] 上按一下滑鼠右鍵,然後從快顯功能表中選擇 [增加物件存放區]。不論何種方式,都會出現 [增加物件存放區] 對話方塊 (圖 2–11)。

    圖 2–11 [增加物件存放區] 對話方塊

    [增加物件存放區] 對話方塊。按鈕從左至右依次為:[確定]、[清除]、[取消] 和 [說明]。

  2. 在 [物件存放區標籤] 欄位中,輸入物件存放區名稱。

    這可提供識別管理主控台中物件存放區的標籤。

    在此練習中,請鍵入名稱 MyObjectStore

  3. 輸入用來查找受管理物件的 JNDI 屬性值:

    1. 請從 [名稱] 下拉式功能表中,選擇要指定的屬性名稱。

    2. 在 [值] 欄位中鍵入屬性值。

    3. 按一下 [增加] 按鈕,增加指定的屬性值。

      特性摘要窗格中會出現特性及其值。

      請為每個需要設定的屬性,重複步驟 a、b 和 c。

      在此練習中,將 java.naming.factory.initial 屬性設定為


      com.sun.jndi.fscontext.RefFSContextFactory

      並且將 java.naming.provider.url 屬性設定為


      file:///C:/Temp

      (在 Solaris 或 Linux 平台上,則為 file:///tmp)。針對檔案系統物件存放區,您僅需設定這些屬性;如需 LDAP 存放區必要屬性值的相關資訊,請參閱LDAP 伺服器物件存放區

  4. 按一下 [確定] 以增加物件存放區,並結束對話方塊。

    新的物件存放區會出現在瀏覽窗格的 [物件存放區清單] 下,如圖 2–12 中所示。物件存放區圖示上紅色的 X,表示物件存放區目前尚未連線至管理主控台。

    圖 2–12 管理主控台視窗中顯示的物件存放區

    [Message Queue 管理主控台] 視窗。已在樹狀檢視窗格中選擇物件存放區。

    當您按一下瀏覽窗格中的物件存放區時,其內容會在結果窗格中列出。因為您尚未在物件存放區中增加任何受管理物件,所以目標和連線工廠的 [計數] 欄都顯示 0。

    只要增加了物件存放區,就可使用 [動作] 功能表 (或快顯功能表) 中的 [特性] 指令,顯示 [物件存放區特性] 對話方塊 (與圖 2–11 中所顯示的 [增加物件存放區] 對話方塊類似),以便您檢視或修改其中任一特性。

連線至物件存放區

現在已在 [管理主控台] 中新增了物件存放區,就必須與其建立連線,才能將受管理物件新增至此物件存放區中。

Procedure連線至物件存放區

  1. 按一下 [管理主控台] 視窗瀏覽窗格中的物件存放區名稱,然後選擇 [動作] 功能表的 [連線至物件存放區]。

    您也可以在物件存放區名稱上按一下滑鼠右鍵,然後從快顯功能表中選擇 [連線至物件存放區]。不論何種方式,物件存放區圖示上紅色的 X 都會消失,這表示已經與管理主控台連線。

使用受管理物件

只要物件存放區連線至管理主控台,就可以繼續將受管理物件 (連線工廠及目標) 增加至此物件存放區。本節會描述作業方法。


備註 –

管理主控台僅會顯示 Message Queue 受管理物件。如果物件存放區含有非 Message Queue 物件,而該物件與所需增加的受管理物件具有相同的查找名稱,則嘗試執行增加作業時,會出現錯誤。


新增連線工廠

連線工廠由用戶端應用程式使用,以建立與代理程式的連線。只要配置連線工廠,即可控制其所建連線的特性。

Procedure將連線工廠新增至物件存放區

  1. 確認物件存放區已連線至管理主控台 (請參閱連線至物件存放區)。

  2. 在 [管理主控台] 視窗的瀏覽窗格中,按一下該物件存放區名稱下的 [連線工廠] 項目,然後選擇 [動作] 功能表的 [增加連線工廠物件]。

    您也可以在 [連線工廠] 上按一下滑鼠右鍵,然後從快顯功能表中選擇 [增加連線工廠物件]。不論何種方式,都會出現 [增加連線工廠物件] 對話方塊 (圖 2–13)。

    圖 2–13 [增加連線工廠物件] 對話方塊

    [增加連線工廠物件] 對話方塊;顯示 [連線處理] 標籤。按鈕從左至右依次為:[確定]、[重設為預設值]、[取消] 和 [說明]。

  3. 在 [查找名稱] 欄位中輸入該連線工廠的名稱。

    這是用戶端應用程式透過 JNDI 查找連線工廠時所使用的名稱。

    在此練習中,請鍵入名稱 MyQueueConnectionFactory

  4. 請從 [Factory 類型] 下拉式功能表中,選擇您希望建立的連線工廠類型。

    在此練習中,請選擇 [QueueConnectionFactory]。

  5. 按一下 [連線處理] 標籤。

    即會出現 [連線處理] 窗格,如圖 2–13 中所示。

  6. 在 [Message Server 位址清單] 欄位中,填入將要與此連線工廠建立連線的代理程式位址。

    此位址清單可能包含一個代理程式;或在代理程式叢集的狀況下,包含多個代理程式。它會針對每個代理程式,指定代理程式連線服務、主機名稱及連接埠號等資訊。實際指定的資訊性質和語法會各有不同,需視所要使用的連線服務而定;如需詳細資訊,請參閱連線處理

    在此練習中,不需要在 [Message Server 位址清單] 欄位中鍵入任何位址,這是因為範例應用程式 HelloWorldMessageJNDI 會讓連線工廠使用預設自動配置的標準位址清單屬性 (連線服務為 jms,主機名稱為 localhost,連接埠號為 7676 )。

  7. 請視需要配置連線工廠的其他屬性。

    [增加連線工廠物件] 對話方塊除了有 [連線處理] 窗格之外,另有其他多個面板,可用以配置連線工廠的各種屬性。

    在此練習中,請勿變更其他任何屬性設定。但是,您還是可以按其他標籤,瞭解可指定的配置資訊種類,增進對此項作業的認識。請使用 [說明] 按鈕,瞭解有關這些其他配置面板的內容。

  8. 在適當情況下,按一下 [唯讀] 核取方塊。

    這會鎖定連線工廠物件的配置屬性,以保持建立時所指定的值。不論是用戶端程式碼的程式設計方式或指令行的管理方式,都無法置換唯讀的受管理物件屬性。

    在此練習中,請勿核取 [唯讀]。

  9. 按一下 [確定] 以建立連線工廠、將其增加至物件存放區,並結束對話方塊。

    新的連線工廠會出現在結果窗格中。

新增目標

目標受管理物件代表代理程式上的實體目標,可讓用戶端將訊息傳送至該實體目標,而不受提供者專用配置及命名語法的影響。當用戶端傳送經由受管理物件定址的訊息時,代理程式會將該訊息傳送至對應的實體目標 (如果存在)。如果上述實體目標不存在,代理程式會自動建立一個實體目標 (如果已啟用自動建立功能,如建立實體目標中所述),並將訊息傳送至此;否則,就會產生一個錯誤,指出訊息無法傳送。

下列程序描述如何將目標受管理物件,增加至與現有實體目標相對應的物件存放區。

Procedure將目標新增至物件存放區

  1. 確認物件存放區已連線至管理主控台 (請參閱連線至物件存放區)。

  2. 在 [管理主控台] 視窗的瀏覽窗格中,按一下物件存放區名稱下的 [目標] 項目,然後選擇 [動作] 功能表的 [增加目標物件]。

    您也可以在 [目標] 上按一下滑鼠右鍵,然後從快顯功能表中選擇 [增加目標物件]。不論何種方式,都會出現 [增加目標物件] 對話方塊 (圖 2–14)。

    圖 2–14 [增加目標物件] 對話方塊

    [增加目標物件] 對話方塊。按鈕從左至右依次為:[確定]、[重設為預設值]、[取消] 和 [說明]。

  3. 在 [查找名稱] 欄位中,輸入該目標受管理物件的名稱。

    這是用戶端應用程式透過 JNDI 查找目標時所使用的名稱。

    在此練習中,請鍵入名稱 MyQueue

  4. 選擇 [佇列] 或 [主題] 單選按鈕,指定要建立的目標物件類型。

    在此練習中,請選擇 [佇列] (如果尚未選取)。

  5. 在 [目標名稱] 欄位中,輸入對應實體目標的名稱。

    這是您將實體目標增加至代理程式時,所指定的名稱 (請參閱使用實體目標)。

    在此練習中,請鍵入名稱 MyQueueDest

  6. 在 [目標描述] 欄位中,輸入該目標的簡短說明;此為選擇性項目。

    此欄位的內容僅供使用者參考,對用戶端作業沒有任何影響。

    在此練習中,您可以刪除 [目標描述] 欄位的內容,或鍵入一些說明性文字,例如


    Example destination for MQ Admin Guide tutorial
  7. 在適當情況下,按一下 [唯讀] 核取方塊。

    這會鎖定目標物件的配置屬性,以保持建立時所指定的值。不論是用戶端程式碼的程式設計方式或指令行的管理方式,都無法置換唯讀的受管理物件屬性。

    在此練習中,請勿核取 [唯讀]。

  8. 按一下 [確定] 以建立目標物件、將其增加至物件存放區,並結束對話方塊。

    新的目標物件會隨即出現在結果窗格中,如圖 2–15 所示。

    圖 2–15 管理主控台視窗中顯示的目標物件

    [Message Queue 管理主控台] 視窗。已在樹狀結構檢視中選擇 [目標]。目標物件已在內容窗格中顯示。

檢視受管理物件特性

您可以在 [管理主控台] 上,使用 [動作] 功能表的 [特性] 指令,檢視或修改受管理物件的特性。

Procedure檢視或修改受管理物件的特性

  1. 在 [管理主控台] 視窗的瀏覽窗格中,選擇物件存放區名稱下的 [連線工廠] 或 [目標]。

    結果窗格會出現可用連線工廠或目標受管理物件的清單,其中顯示各項目的查找名稱和類型 (目標受管理物件清單另包括目標名稱)。

  2. 在結果窗格中按一下受管理物件的名稱,以選擇該受管理物件。

  3. 從 [動作] 功能表中選擇 [特性]。

    此時會出現 [連線工廠物件特性] 或 [目標物件特性] 對話方塊,與 [增加連線工廠物件] (圖 2–13) 或 [增加目標物件] (圖 2–14) 對話方塊類似。您可使用此對話方塊,變更所選取物件的配置屬性。但請注意,您無法變更物件的查找名稱;唯一的方法是刪除該物件,然後再以所需的查找名稱增加新的受管理物件。

  4. 按一下 [確定] 以接受新的屬性值,並結束對話方塊。

刪除受管理物件

刪除受管理物件會將其從所屬物件存放區中永久移除。

Procedure刪除受管理物件

  1. 在 [管理主控台] 視窗的瀏覽窗格中,選擇物件存放區名稱下的 [連線工廠] 或 [目標]。

    結果窗格會出現可用連線工廠或目標受管理物件的清單,其中顯示各項目的查找名稱和類型 (目標受管理物件清單另包括目標名稱)。

  2. 請在結果窗格中按一下受管理物件的名稱,以選擇該受管理物件。

  3. 從 [編輯] 功能表中選擇 [刪除]。

    此時會出現確認對話方塊,要求您確認是否繼續該作業。

  4. 按一下 [是] 以確認作業,並結束確認對話方塊。

    在此練習中,請勿刪除先前建立的受管理物件 MyQueueMyQueueConnectionFactory;請按一下 [否] 結束確認對話方塊,以免執行刪除作業。

執行範例應用程式

本指導使用的範例應用程式為 HelloWorldMessageJNDI。此範例應用程式使用您建立的實體目標和受管理物件:

此程式碼會建立簡單的佇列傳送者和接收者,並傳送和接收 Hello World 訊息。

執行此應用程式前,請先開啟原始檔 HelloWorldMessageJNDI.java,並閱讀程式碼。此程式很短,同時有詳細的說明,瞭解其運作方式應該不難。

Procedure執行範例應用程式

  1. 請使用下列其中一個指令 (依所用平台而定),使包含 HelloWorldmessageJNDI 應用程式的目錄成為目前的目錄:

    • 在 Solaris 上:


      cd /usr/demo/imq/helloworld/helloworldmessagejndi
    • 在 Linux 上:


      cd /opt/sun/mq/examples/helloworld/helloworldmessagejndi
    • 在 Windows 上:


      cd IMQ_HOME\\demo\\helloworld\\helloworldmessagejndi

    您應會發現 HelloWorldMessageJNDI.class 檔案已存在。(應用程式若有變更,必須使用「Message Queue Developer's Guide for Java Clients」中提供的用戶端應用程式編譯程序,重新編譯該應用程式。 )

  2. 設定 CLASSPATH 變數,以納入包含檔案 HelloWorldMessageJNDI.class 的目前目錄,以及包含在 Message Queue 產品中的下列 .jar 檔案:


    jms.jar
    imq.jar
    jndi.jar
    fscontext.jar

    請參閱「Message Queue Developer's Guide for Java Clients」,以取得設定 CLASSPATH 變數的相關資訊。


    備註 –

    jndi.jar 檔案隨附於 JDK 1.4。除非使用舊版的 JDK,否則不需要將此檔案增加至 CLASSPATH


  3. 執行下列指令之一 (依所用平台而定),以執行 HelloWorldMessageJNDI 應用程式:

    • 在 Solaris 或 Linux 上:


      % java HelloWorldMessageJNDI file:///tmp
    • 在 Windows 上:


      java HelloWorldMessageJNDI

    如果應用程式成功執行,您應該會看到如下所示的輸出。


    java HelloWorldMessageJNDI
    Using file:///C:/Temp for Context.PROVIDER_URL
    
    
    Looking up Queue Connection Factory object with lookup name:
    MyQueueConnectionFactory
    Queue Connection Factory object found.
    Looking up Queue object with lookup name: MyQueue
    Queue object found.
    
    
    Creating connection to broker.
    Connection to broker created.
    
    Publishing a message to Queue: MyQueueDest
    Received the following message: Hello World