Sun ONE logo     上一個      目錄      索引      下一個     
Sun ONE Application Server 7, Update 1 管理員指南



使用 JMS 服務

Sun ONE Application Server 提供使用 Java Message Service (JMS) 應用程式設計介面 (API) 進行訊息傳送作業的應用程式支援。JMS 是程式設計介面集,提供了 Java 應用程式在分散式環境中建立、發送、接收並讀取訊息的一般方法。

特別強調的是,JMS 是 Java 2 Enterprise Edition (J2EE) 應用程式執行非同步訊息傳送服務的標準方法。因此,J2EE 組件 (Web 組件或企業 JavaBeans [EJB] 組件) 可以使用 JMS API 發送由專用 EJB (名為訊息導引 Bean [MDB]) 非同步使用的訊息。

Sun ONE Application Server 一般支援 JMS 訊息傳送,特別是在支援 MDB 時,需要執行 JMS 規格的訊息傳送介體 (JMS 供應程式)。Sun ONE Application Server 使用 Sun ONE Message Queue (MQ) 版本 3.01 作為其本端 JMS 供應程式。

MQ 緊密整合至 Sun ONE Application Server 中,提供透明的 JMS 訊息傳送支援。此支援 (在 Sun ONE Application Server 中稱為 JMS 服務) 僅需要最少的管理。

本 module 提供了瞭解並管理內建 JMS 服務 (該服務透過 Sun ONE Message Queue 提供) 所需的資訊。其包括以下主題:

關於 JMS

JMS 規格描述了支援分散式、企業訊息傳送的程式設計介面集。企業訊息傳送系統可讓獨立分散式組件或應用程式在訊息之間互動。這些組件無論是否在同一系統中、同一網路中或透過網際網路鬆散連接,均使用訊息傳送來傳輸資料,並且與其各自的功能相互作用。

若要支援企業級訊息傳送,JMS 會提供可靠的非同步訊息發送。

可靠的發送。從一個組件向另一個組件傳送的訊息不能因網路或系統故障而遺失。這意味著系統必須能夠保證訊息成功發送。

非同步發送。若要大量的組件能夠同時交換訊息,並且支援高密度的訊息流量,則發送訊息不能取決於使用者是否願意立即接收此訊息。如果使用者很忙或離線,系統必須允許發送訊息,並且在隨後使用者就緒時能夠收到此訊息。這稱為非同步訊息發送,通稱為儲存再前送訊息傳送。

本主題簡要概述了 JMS 概念與術語:

如需 JMS 的完整說明,請參閱 JMS 1.0.2 規格,可以在以下位置找到:

http://java.sun.com/products/jms/docs.html

基本訊息傳送系統概念

一些基本的概念通常構成了企業訊息傳送系統的基礎,特別是 JMS 的基礎。本主題將論述以下內容。

訊息

訊息由某種格式 (訊息內文) 的資料與描述訊息 (訊息標頭) 特徵或特性的複合資料組成,例如訊息目標、使用期或由訊息傳送系統決定的其他特徵。

訊息服務架構

「訊息服務架構」圖中列舉了訊息傳送系統的基本架構。其由訊息提供者與透過一般訊息服務進行訊息交換的訊息使用者組成。一般來說,任何數目的訊息提供者與使用者均可以駐留在同一訊息傳送組件中。訊息提供者將訊息發送至訊息服務。訊息服務反過來使用訊息路由與發送組件,將訊息發送至已在此訊息中註冊興趣的一個或多個訊息使用者。訊息路由與發送組件負責保證訊息發送至所有適當的使用者。

   訊息服務架構
此圖解顯示了訊息提供者與使用者以及訊息服務。此圖使用文字方式進行解釋。

訊息發送模型

訊息提供者與使用者之間有許多關係:一對一、一對多與多對多關係。例如,您可以使訊息從:

  • 一個提供者向一個使用者發送
  • 一個提供者向多個使用者發送
  • 多個提供者向一個使用者發送
  • 多個提供者向多個使用者發送

這些關係通常會成為兩個訊息發送模型:點對點 發佈/訂購 訊息傳送。點對點發送模型主要集中於由特定提供者發送並由特定使用者接收的訊息。發佈/訂購發送模型主要集中於由一些提供者中的任何使用者發送的訊息與任意多個使用者接收的訊息。這些訊息發送模型可以重疊。

從歷程來看,訊息傳送系統支援這兩種發送模型的各種組合。JMS API 試圖建立一般程式設計方法,用以支援點對點與發佈/訂購發送模型。

JMS 規格

JMS 指定了一個訊息結構、一個程式設計模型以及一組控制訊息傳送作業的規則與語義。

JMS 訊息結構

依據 JMS 規格,訊息由三個部分組成:標頭、特性 (可以作為標頭的延伸) 與內文。

標頭。此標頭指定了訊息的 JMS 特徵:訊息目標、是否具有持續性、使用期及其優先權。這些特徵決定了訊息傳送系統發送訊息的方式。

特性。特性是選擇性的 — 其提供了應用程式依據各種選取準則過濾訊息可以使用的值。特性是選擇性的。

訊息內文。訊息內文包含要交換的實際資料。JMS 支援六種內文類型。

JMS 程式設計模型

在 JMS 程式設計模型中,JMS 用戶端 (組件或應用程式) 透過 JMS 訊息服務方式交換訊息。訊息提供者將訊息發送至訊息服務,而訊息使用者透過訊息服務接收這些訊息。使用執行 JMS API 的物件集 (由 JMS 供應程式提供),執行這些訊息傳送作業。此圖「JMS 程式設計物件」顯示了用於程式設計訊息發送的 JMS 物件。

在 JMS 程式設計模型中,JMS 用戶端使用 ConnectionFactory 物件,建立將訊息傳送至 JMS 訊息服務並從該服務接收訊息要使用的連接。Connection 是訊息服務的 JMS 用戶端作用中連接。通訊資源的分配與用戶端的認證均在連接建立時發生。

   JMS 程式設計物件
此圖解顯示了在程式設計 JMS 用戶端中使用的物件。此圖使用文字方式進行解釋。

此連接用於建立階段作業。Session 是提供與使用訊息的單執行緒環境。其用於建立發送訊息的訊息提供者與接收訊息的訊息使用者。階段作業透過一系列的確認選項或異動 (可以由分散式異動管理程式管理) 支援可靠的發送。

JMS 用戶端使用 MessageProducer,將訊息發送至指定的實體目標,在 API 中表示為 destination 物件。訊息提供者可以指定預設發送模式 (永久性訊息對非永久性訊息)、優先權與使用期,這些會控制提供者發送至實體目標的所有訊息。

類似的是,JMS 用戶端使用 MessageConsumer,接收指定實體目標中的訊息,在 API 中表示為 destination 物件。訊息使用者可以支援訊息的同步或非同步使用。非同步使用可以透過使用者註冊 MessageListener 來實現。用戶端在階段作業執行緒呼叫 MessageListener 物件的 onMessage() 方法時,使用訊息。

管理物件:供應程式獨立性

「JMS 程式設計模型」圖中描述的兩個物件取決於 JMS 供應程式執行 JMS 訊息服務的詳細資訊。連接 Factory 物件取決於基礎協定與供應程式發送訊息所使用的機制,而 destination 物件取決於特定命名慣例以及供應程式使用的實體目標功能。

通常,這些供應程式特定的特徵會使 JMS 用戶端碼與 JMS API 執行的詳細資訊相依。不過,若要使 JMS 用戶端碼與供應程式無關,JMS 規格需要以標準化方式存取供應程式特定的物件 (稱為為管理物件),而不是直接在用戶端碼中創設。

管理物件封裝供應程式特定的執行以及配置資訊。這些物件由管理員建立與配置,儲存在名稱服務中,由用戶端應用程式透過標準 JNDI 查找碼進行存取。以這種方式使用管理物件,可以使 JMS 用戶端碼與供應程式無關。

JMS 提供兩種一般類型的管理物件:連接 Factory 與目標。兩種類型均封裝供應程式特定的資訊,但是在 JMS 用戶端內卻具有完全不同的用法。連接 Factory 用於建立訊息伺服器的連接,而 destination 物件用於識別 JMS 訊息服務使用的實體目標。



注意

在 Sun ONE Application Server 的環境中,JMS 管理物件被視為 JMS 資源,類似於其他 Application Server 資源。



訊息導引 Bean

除了在「JMS 程式設計模型」圖中介紹的一般 JMS 用戶端程式設計模型外,還有一個在 J2EE 應用程式環境中使用的更為專用的 JMS API。這一專用的 JMS 用戶端稱為訊息導引 Bean,是在 EJB 2.0 規格中指定的家族 EJB 組件之一 (位於 http://java.sun.com/products/ejb/docs.html)。

需要使用訊息導引 Bean 的原因在於只可以同步呼叫其他 EJB 組件 (階段作業 Bean 與實體 Bean)。因此,在您呼叫這些 Bean 的方法時,會阻止使用這些資源,直至這些方法已完成。這些 EJB 組件沒有非同步接收訊息的機制,因為這些組件僅透過標準的 EJB 介面存取。

但是,非同步訊息傳送是許多企業應用程式的需求。因此,需要可以在沒有緊密與訊息提供者結合的情況下,接收訊息並使用訊息的 EJB 組件。

MDB 是專用的 EJB 容器支援的專用 EJB 組件 (為此環境支援的組件提供分散式服務的軟體環境)。

   MDB 訊息使用者
此圖解顯示了各種訊息提供者與使用者。此圖使用文字方式進行解釋。

訊息導引 Bean。MDB 是執行 JMS MessageListener 介面的 JMS 訊息使用者。其 onMessage 方法 (由 MDB 開發人員撰寫) 在 MDB 容器收到訊息時呼叫。onMessage 方法使用訊息的方式與任何 JMS MessageListene 物件的 onMessage 方法使用訊息的方式一樣。MDB 可以使用從單一目標發送的訊息。這些訊息可以由獨立的 JMS 用戶端應用程式、Web 組件或其他 EJB 組件提供,如圖「MDB 訊息使用者」所示。

MDB 容器。專用的 EJB 容器支援 MDB,MDB 負責建立 MDB 實例,並且為非同步使用訊息設定這些實例。在階段作業儲存區與關聯的 MDB 實例中接收訊息時,會設定與訊息服務 (包括認證) 的連接、建立與給定目標關聯的階段作業儲存區以及管理訊息分配。由於容器可控制 MDB 實例的生命週期,因此其會管理 MDB 實例儲存區,以便容納進來的訊息負載。

與 MDB 關聯的是佈署描述元,此描述元指定了容器在設定訊息使用時所使用的管理物件之 JNDI 查找名稱。連接 Factory 與目標。佈署描述元可能也包括可由佈署工具用於配置容器的其他資訊。每個此類容器僅支援單一 MDB 實例。

如需關於配置 Sun ONE Application Server 的 EJB 容器 MDB 設定的資訊,請參閱「關於訊息導引 Bean」

內建 JMS 服務

一般對 JMS 訊息傳送的支援,特別是對 MDB 的支援,內建於 Sun ONE Application Server 中。這種支援可以透過 Sun ONE Message Queue 與 Sun ONE Application Server 的緊密整合來實現,提供本端的內建 JMS 服務。

本主題包含瞭解此內建 JMS 服務所必需的以下主題:

如需關於管理內建 JMS 服務的資訊,請參閱「內建 JMS 服務的管理」

關於 Sun ONE Message Queue (MQ)

Sun ONE Message Queue (MQ) 是執行 JMS 開放標準的企業訊息傳送系統:其為 JMS 供應程式。

MQ 產品的某些功能超越了可靠的、非同步訊息傳送的 JMS 規格之最低需求。某些功能 (中央管理、可調效能、多訊息傳送傳輸支援、使用者認證與授權) 可以在整合於 Sun ONE Application Server 中的 MQ Platform Edition 中取得。其他功能 (可縮放訊息伺服器與安全訊息傳送) 可透過升級至 MQ Enterprise Edition 取得。

如圖「MQ 系統架構」所示,MQ 訊息傳送系統由多個部分組成,這些部分可以協同作業以提供可靠的訊息發送。

MQ 訊息傳送系統的主要部分如下:

以下主題簡要簡要介紹了這些內容。如需關於 MQ 訊息傳送系統的更多完整論述,請參閱 MQ「管理員指南」,可以從以下位置找到:

http://docs.sun.com/

MQ 訊息伺服器

如圖「MQ 系統架構」所示,MQ 訊息伺服器的主要部分為代理程式與實體目標。

代理程式。代理程式為 MQ 訊息傳送系統提供發送服務。訊息發送依賴於處理連接服務、訊息路由與發送、持續性、安全性以及記錄的一些支援組件。訊息伺服器可以使用一個或多個代理程式實現縮放性。

實體目標。訊息發送是兩階段程序發送,即,從提供訊息用戶端發送至代理程式維護的實體目標,然後從該目標發送至一個或多個使用訊息用戶端。實體目標表示代理程式實體記憶體和/或永久性儲存體中的位置 (請參閱「實體目標」,以取得更多資訊)。

   MQ 系統架構
此圖解顯示了 MQ 訊息傳送系統部分。此圖使用文字方式進行解釋。

代理程式

在 MQ 訊息傳送系統中的訊息發送 (即,從提供訊息的用戶端至目標,然後從目標至一個或多個使用訊息的用戶端),由代理程式執行 (或,在 MQ 3.01 Enterprise Edition 中,為在串聯中使用的代理程式叢集)。若要執行訊息發送,代理程式必須設定與用戶端的通訊通道;執行認證與授權;正確路由訊息;保證可靠的發送以及提供監視系統效能的資料。

若要執行這一複雜的功能集,代理程式使用各種不同的組件,每個組件在發送程序中具有一個特定的角色。您可以配置這些內部組件,以最佳化代理程式的效能,這要取決於載入狀況、應用程式的複雜性等。請參閱 MQ「管理員指南」,以取得更多資訊。

實體目標

MQ 訊息傳送以兩階段訊息發送為前提:第一個是從提供者用戶端至代理程式目標的訊息發送,第二個是從代理程式目標至一個或多個使用者用戶端的訊息發送。有兩種類型的目標:佇列 (點對點發送模型) 與主題 (發佈/訂購發送模型)。這些目標表示代理程式實體記憶體中的位置,從中對進來的訊息編組,然後再路由至使用者用戶端。

通常使用管理工具建立實體目標,不過,也可以在收到訊息時由代理程式自動建立目標。

佇列目標。佇列目標用於點對點訊息傳送,這意味著訊息最終僅傳送至在目標中註冊興趣的其中一個使用者。當訊息從提供者用戶端發出時,這些訊息會佇列,然後發送至使用者用戶端。

主題目標。主題目標用於發佈/訂購訊息傳送,這意味著訊息最終發送至已在目標中註冊興趣的所有使用者。當訊息從提供者發出時,其會路由至訂購此主題的所有使用者。如果使用者已註冊長期訂購此主題,則他們不必在訊息發送至此主題時處於使用中,因為代理程式將儲存此訊息,直至使用者再次處於使用中,然後再將此訊息發送至使用者。

MQ 用戶端執行期間

MQ 用戶端執行期間向 JMS 用戶端 (單獨應用程式、Web 組件或 EJB 組件) 提供 MQ 訊息伺服器的介面 — 它向 JMS 用戶端提供了用戶端將訊息傳送至目標,然後從此類目標接收訊息所需的所有程式設計介面執行。

「訊息傳送作業」列舉了在 JMS 用戶端與 MQ 用戶端執行之間的訊息產生與使用的互動方式,而在 MQ 用戶端執行期間與 MQ 訊息伺服器之間具有訊息發送互動。

   訊息傳送作業
此圖解顯示了訊息提供者和使用者與 MQ 執行期間互動的方式。此圖使用文字方式進行解釋。

MQ 管理物件

MQ 管理物件允許 JMS 用戶端碼成為獨立的供應程式 (請參閱「管理物件:供應程式獨立性」)。可以透過封裝供應程式特定的執行與物件中的配置資訊 (然後可以採用供應程式無關的方式由用戶端應用程式使用),執行此動作。MQ 管理物件由管理員建立與配置,儲存在名稱服務中,由 JMS 用戶端透過標準 JNDI 查找碼進行存取。

連接 Factory 管理物件。連接 Factory 物件用於在 JMS 用戶端 (獨立的應用程式、Web 組件或 EJB 組件) 與 MQ 訊息伺服器之間建立實體連接。連接 Factory 物件在代理程式中沒有實體表示 — 該物件僅用於啟用 JMS 用戶端,以建立與代理程式的連接。也可用來指定連接行為與使用連接存取代理程式的用戶端執行期間行為:因此,MQ 連接 Factory 具有很多可配置屬性,可讓您調整 MQ 系統效能。

目標管理物件。目標管理物件 (佇列或主題) 在代理程式中表示公共具名的目標管理物件對應的實體目標 (實體佇列或實體主題)。透過建立目標管理物件,可讓 JMS 用戶端 (訊息使用者和/或訊息提供者) 存取相應的實體目標。

MQ 管理工具

MQ 管理工具分為兩類:指令行公用程式與圖形使用者介面 (GUI) 管理主控台。

管理主控台。您可以使用管理主控台,連接至代理程式並管理它;建立關於代理程式的實體目標;連接至物件儲存,然後加入、更新管理物件或從物件儲存中刪除它。某些工作是您無法使用管理主控台執行的;主要工作包括啟動代理程式、建立代理程式叢集、配置更多代理程式專用特性以及管理使用者資料庫。

指令行公用程式。使用 MQ 公用程式執行使用管理主控台可以執行的所有工作,此外,啟動並管理代理程式,配置更多代理程式專用特性並管理 MQ 使用者資料庫。

整合 MQ 與 Sun ONE Application Server

MQ Platform Edition 將作為 Sun ONE Application Server 安裝程序一部分,自動安裝。如需更多資訊,請參閱「Sun ONE Application Server 安裝指南」。

此安裝向 Sun ONE Application Server 提供支援任意多個 Sun ONE Application Server 實例的 JMS 訊息傳送系統。依預設,每個伺服器實例均具有關聯的內建 JMS 服務,支援在此實例中執行的所有 JMS 用戶端。

本主題包括下列主題:

可以使用 Sun ONE Application Server 管理工具,管理內建的 JMS 服務 (請參閱「內建 JMS 服務的管理」)。

內建 JMS 服務架構

除以下所述的一些限制外,內建 JMS 服務 (在「內建的 MQ 訊息傳送系統」圖中進行了說明) 類似於一般的 MQ 訊息傳送系統 (如圖「MQ 系統架構」所示)。

   內建的 MQ 訊息傳送系統
此圖解顯示了應用程式伺服器實例中的內建 JMS 服務。此圖使用文字方式進行解釋。

MQ 訊息伺服器。每個 Sun ONE Application Server 實例均與其自身的內建 JMS 服務關聯。內建 JMS 服務使用單代理程式訊息伺服器。此代理程式在 Sun ONE Application Server 實例之外的單獨程序中執行,如圖「內建的 MQ 訊息傳送系統」所示。依預設,代理程式實例 (內建 JMS 服務) 在其關聯伺服器實例啟動時啟動,並在該伺服器實例關閉時關閉。伺服器實例的內建 JMS 服務之配置資訊記錄在 Sun ONE Application Server 配置儲存區中 (server.xml 檔案),並且可以進行修改,如「配置 JMS 服務」所述。

MQ 用戶端執行期間。JMS 服務的用戶端執行期間部分是支援 JMS API 的程式庫集。任何在伺服器實例中執行的 JMS 用戶端 (JMS 用戶端組件,包括 MDB),均可存取這些程式庫。

MQ 管理物件。內建 JMS 服務使用 Sun ONE Application Server 提供的物件儲存區。每個伺服器實例均具有其自己的物件儲存區。JMS 服務在物件儲存區中儲存了管理物件 (連接 Factory 與目標資源)。可以建立這些管理物件資源,如「管理受管理物件資源」中所述,並且透過 JMS 用戶端使用 JNDI 查找碼存取這些資源。

Sun ONE Application Server 管理。Sun ONE Application Server 管理介面與指令行公用程式執行 MQ 管理功能的有限子集。管理介面與指令行可讓您配置內建的 JMS 服務,建立與刪除實體目標,以及建立與刪除 JMS 用戶端執行 JMS 訊息傳送作業所需的管理物件資源。但是,這些管理工具不允許 (或不協助) 執行更複雜的管理工作,例如設定代理程式特性、調整 MQ 用戶端執行期間、修改 MQ 使用者儲存庫、管理 MQ 安全性等。如果您要為內建的 JMS 服務執行這些管理工作,必須使用隨 MQ 安裝並在 MQ「管理員指南」描述的管理工具。如需 MQ 與 Sun ONE Application Server 管理功能的比對,請參閱表格「Sun ONE Message Queue 與 Sun ONE Application Server 管理功能的比對」

停用內建 JMS 服務

依預設,內建 JMS 服務在關聯的 Sun ONE Application Server 實例啟動時啟動 (即,MQ 代理程式啟動)。但是,可能需要在啟動伺服器實例時,停用 JMS 服務的自動啟動功能,這是因為伺服器實例不需要支援 JMS 訊息傳送,或是因為伺服器實例使用外部 JMS 服務。(若要停用內建的 JMS 服務,請參閱「配置 JMS 服務」。)

外部 JMS 服務是不在 Sun ONE Application Server 內控制的訊息傳送系統。對於 MQ 而言 (本端 JMS 供應程式),這意味著僅僅啟動並獨立管理 MQ 訊息伺服器,使用 MQ 管理工具。在各種伺服器實例中執行的 JMS 用戶端仍然可以使用 MQ 管理物件存取 MQ 訊息伺服器。這些管理物件可以儲存在與每個應用程式伺服器實例關聯的物件儲存區中,也可儲存在 MQ 管理工具管理的單獨的獨立物件儲存區中 (如有必要,此儲存區可以由多個伺服器實例共用)。

有這樣一些方案,伺服器實例可以在其中使用外部 JMS 服務。最有可能的是當不同伺服器實例中的 JMS 用戶端需要存取同一個實體目標時。在這種情況下,伺服器實例必須均存取同一個訊息伺服器。若要實現此作業,必須停用所有伺服器實例的內建 JMS 服務,並配置所有 JMS 用戶端,以執行存取外部 JMS 服務的適當 JNDI 查找。此外,必須使用外部 JMS 服務供應程式管理工具獨立管理外部 JMS 服務 (管理訊息伺服器、建立實體目標、建立所需的所有管理物件)。

配置多個應用程式伺服器實例以共用單一 MQ 代理程式實例的步驟:

  1. 對所有伺服器實例停用 JMS 服務。
  2. 管理獨立於任何伺服器實例的共用 MQ 代理程式,這就意味著您必須使用管理外部服務的管理工具啟動並關閉此代理程式。同時,必須管理獨立於 Sun ONE Application Server 的實體目標。
  3. 在每個伺服器實例中配置連接 Factory JMS 資源,以便該資源會指向此外部 MQ 代理程式 (必須適當設定 imqBrokerHostNameimqBrokerHostPort 特性)。
  4. 在 Sun ONE Application Server 中佈署 JMS 應用程式時,使用此連接 Factory 資源。

可以在同時執行外部與內建 JMS 服務。伺服器實例中的 JMS 用戶端可以存取其所需的任何 JMS 服務。

建議使用的一種可能性是數個伺服器實例共用同一個內建 JMS 服務 (啟用一個服務,則會停用其他服務)。不建議使用的原因是已啟用的 JMS 服務僅在其關聯的伺服器實例執行時才執行,從而很難管理這種情況。

您停用內建 JMS 服務時,同時也會停用執行與此內建 JMS 服務關聯的管理工作功能。必須使用管理外部服務的管理工具,執行支援外部 JMS 服務所需的所有管理工作。

內建 JMS 服務的管理

此主題主要論述了內建 JMS 服務的管理。會對伺服器實例逐個執行管理

內建 JMS 服務管理需要以下工作:

可以使用 Sun ONE Application Server 的管理介面或指令行公用程式執行管理。這些管理工具與 MQ 管理工具的比對顯示在表格「Sun ONE Message Queue 與 Sun ONE Application Server 管理功能的比對」中。

   Sun ONE Message Queue 與 Sun ONE Application Server
管理功能的比對

功能

Sun ONE MQ 管理工具

Sun ONE AS

管理介面

Sun ONE AS 管理指令行

管理 MQ 代理程式狀態

 

 

啟動/停止

 

啟動/停止

 

配置 MQ 代理程式

 

 

 

 

管理 MQ 代理程式使用者儲存庫

 

 

 

 

多代理程式叢集

 

 

 

 

管理安全性

 

 

 

 

管理實體目標

 

 

建立/刪除

 

建立/刪除

 

管理持久訂購與異動

 

 

 

 

管理受管理物件資源

 

 

建立/刪除/
配置

 

 

以下章節解釋了使用 Sun ONE Application Server 管理介面執行 JMS 服務管理工作的方式。

配置 JMS 服務

在安裝期間,為內建 JMS 服務設定了一些 JMS 服務特性。可以透過配置 JMS 服務,變更這些特性的預設值。

在表格「JMS 服務特性」中描述了 JMS 服務特性。

   JMS 服務特性 

特性

說明

預設值

日誌層級

 

您要寫入至 Sun ONE Application Server 日誌檔的記錄資訊層級。如需更多資訊,請參閱「使用記錄功能」

 

DEBUG_HIGH

 

連接埠

 

提供內建 JMS 服務的代理程式實例的主連接埠號。依預設,內建 JMS 服務使用預設的主連接埠號。但是,如果此連接埠與其他軟體衝突,或者您要啟動多個 Sun ONE Application Server 實例,則需要為每個實例指定唯一的主連接埠號。

請注意,如果在安裝期間指定給 JMS 服務的連接埠號後來被另一個服務使用,則有可能發生連接埠衝突。在這種情況下,必須為 JMS 服務指定另一個連接埠號。

 

7676

 

管理員使用者名稱/密碼

 

執行代理程式管理工作 (例如管理實體目標,請參閱「管理實體目標」) 所需要的使用者名稱/密碼。如果您要管理員存取的代理程式實例具有安全性 (依預設,任何使用者均具有存取權),需要首先在代理程式使用者儲存庫中建立適當的項目 (如 MQ「管理員指南」所述),然後在此為管理員使用者名稱與密碼輸入相應的值。

 

admin/admin

 

啟動逾時

 

以秒為單位指定伺服器實例等待 JMS 服務啟動的時間。如果超出了此逾時時間,則伺服器實例啟動會中斷。

 

60

 

啟動引數

 

指定在啟動 JMS 服務中使用的任何引數。imqbroker 指令的啟動引數以及指定這些引數的方法,可以在 MQ「管理員指南」中找到。(如果提供 -name-port 引數,則會忽略。)

 

 

啟用啟動

 

指定在伺服器實例啟動時是否啟動內建 JMS 服務。如果您不支援 JMS 訊息傳送或使用外部 JMS 訊息服務,則將此特性設定為 FALSE。

 

TRUE

 

可以在啟動內建 JMS 服務的對應服務實例之前,配置此服務。但是,如果伺服器實例已經執行,配置變更僅在伺服器實例停止、隨後重新啟動之後才生效。

配置內建 JMS 服務的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 選取 [Service] 連結。
  5. [JMS Service Configuration] 螢幕會顯示在右窗格中。

   [JMS Service Configuration] 螢幕
[Application Server] 視窗與 [JMS Service configuration]。此螢幕使用文字方式進行解釋。

  1. 修改您需要的任何特性 (請參閱表格「JMS 服務特性」)。
  2. 按一下 [Save] 按鈕。
  3. 會重新顯示 [JMS Service] 螢幕。

管理實體目標

在 JMS 訊息傳送中,JMS 提供者將訊息發送至訊息服務的實體目標中,然後這些訊息透過實體目標派送至 JMS 使用者。

對於內建 JMS 服務,您可以明確地建立這些實體目標,或透過在 JMS 服務 (MQ 代理程式) 接收到訊息時,自動建立實體目標。通常,透過明確建立訊息傳送應用程式所需的實體目標,可以更嚴密地控制訊息傳送系統及其資源。不再需要這些目標時,可以刪除它們。

為了建立或刪除內建 JMS 服務的實體目標,JMS 服務必須在執行,並且管理員使用者名稱與密碼 (在配置內建 JMS 服務時指定) 必須對應於代理程式使用者儲存庫中的有效項目 (請參閱表格「JMS 服務特性」)。

使用管理介面,您可以為內建 JMS 服務中的實體目標,執行以下管理工作:

建立佇列或主題目標

建立佇列或主題目標的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 開啟 [Service] 連結。
  5. 選取 [Physical Destinations] 連結。
  6. [Physical Destinations] 螢幕會顯示在右窗格中。

  7. 按一下 [New] 按鈕。
  8. [Physical Destinations:New] 螢幕會顯示在右窗格中。

   [New JMS Physical Destination] 螢幕
[Application Server] 視窗,顯示 JMS 實體目標對話方塊。此螢幕使用文字方式進行解釋。

  1. 輸入實體目標的名稱。
  2. 從 [Type] 下拉式清單中選取 [queue] 或 [topic]。
  3. 按一下 [OK] 按鈕。
  4. 會重新顯示右窗格,並在現有佇列與主題目標清單中顯示新的佇列或主題目標。

列示實體目標

列示現有佇列與主題目標的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 開啟 [Service] 連結。
  5. 選取 [Physical Destinations] 連結。
  6. 右窗格中會顯示目前的實體目標。

刪除實體目標

您可以依需要刪除佇列或主題目標。

刪除實體目標的步驟:

  1. 列示現有的目標 (請參閱「列示實體目標」)。
  2. 在 [Select] 方塊內,按一下希望刪除的每個目標。

   [JMS Physical Destinations] 螢幕
[Application Server] 視窗會顯示用於刪除目標的對話方塊。此螢幕使用文字方式進行解釋。

  1. 按一下 [Delete] 按鈕,移除選取的目標。
  2. 清單會重新顯示,顯示其餘的目標。

管理受管理物件資源

JMS 用戶端使用 MQ 管理物件 (Sun ONE 應用程式服務將其作為 JMS 資源),來存取 JMS 服務 (為內建服務或外部服務)。

J2EE 組件使用兩個管理物件資源 (連接 Factory 與目標) 來取得 JMS 服務的連接,然後將訊息發送至訊息服務的實體目標並從其傳出 (請參閱「MQ 管理物件」)。

由於建立管理物件資源不直接涉及 JMS 服務,因此無需啟用 JMS 服務,並且無需有效的使用者名稱與密碼 (請參閱表格「JMS 服務特性」),便可為伺服器實例建立管理物件資源。

管理物件屬性

若要支援 JMS 訊息傳送,必須建立在伺服器實例中執行的所有 JMS 用戶端所需的管理物件資源。至少需要為每個管理物件資源指定一個 JNDI 查找名稱、類型 (連接 Factory、佇列或主題)、說明 (可選),以及是否啟用了此資源。在以下章節中會論述其他屬性。

目標 (佇列或主題)

對於佇列或主題管理物件而言,也需要指定對應實體目標的名稱。

連接 Factory

對於連接 Factory 管理物件而言,依預設,管理介面建立指向內建 JMS 服務的連接 Factory,即,指向代理程式實例,其主機名稱為本機主機,其連接埠號是在配置 JMS 服務時設定的號碼 (請參閱表格「JMS 服務特性」)。

但是,如果您停用特定伺服器實例的 JMS 服務,則任此伺服器實例支援的所有 JMS 用戶端均必須使用外部 JMS 服務。您建立用於建立外部 JMS 服務連接的連接 Factory 時,需要設定指定適當代理程式實例的主機名稱與連接埠號的屬性。

連接 Factory 管理物件具有用來調整伺服器實例 MQ 用戶端執行期間的其他屬性。在 MQ「Developer's Guide」中論述了這些內容。

使用管理介面建立的連接 Factory 管理物件支援分散式異動管理程式。

管理物件資源管理工作

經由管理介面,您可以為管理物件資源執行以下管理工作:

建立佇列或主題管理物件 (目標資源)

建立佇列或主題管理物件的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 選取 [Destination Resources] 連結。
  5. [Destination Resources] 螢幕會顯示在右窗格中。

  6. 按一下 [New] 按鈕。
  7. 會顯示 [Destination Resources:New] 螢幕。

   [New Destination Administered Object] 螢幕
[Application Server] 視窗會顯示用於建立管理物件的對話方塊。此螢幕使用文字方式進行解釋。

  1. 輸入與此目標管理物件關聯的 JNDI 查找名稱。
  2. 從下拉式清單中選取「queue」或「topic」物件類型。
  3. 按一下 [OK] 按鈕。
  4. 右窗格中會重新顯示 [Destination Resource:New] 螢幕。

此外,必須透過指定 imqDestinationName 特性,為此物件指定目標名稱。此特性的值應該與實體目標名稱相符。

變更此特性值的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 開啟 [Destination Resources] 資料夾。
  5. 選取您要編輯的 [Destination Resource]。
  6. 右窗格中會顯示 [Destination Resource] 螢幕。

  7. 在右窗格中,按一下 [Properties]。
  8. 會出現 [Edit Properties] 螢幕。

  9. 在 [Name] 欄位中,輸入 imqDestinationName。
  10. 在 [Value] 欄位中,輸入實體目標名稱。
  11. 按一下 [OK]。
  12. 右窗格中會重新顯示 [Destination Resources] 螢幕。

建立 ConnectionFactory 管理物件

建立佇列連接 Factory 或主題連接 Factory 管理物件的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 選取 [Connection Factories] 連結。
  5. [Connection Factory Resources] 螢幕會顯示在右窗格中。

  6. 按一下 [New] 按鈕。
  7. 會顯示 [Connection Factory Resources:New] 螢幕。

   [New ConnectionFactory Administered Object] 螢幕
[Application Server] 視窗顯示 [JMS Connection Factory] 對話方塊。此螢幕使用文字方式進行解釋。

  1. 輸入與此連接 Factory 管理物件關聯的 JNDI 查找名稱。
  2. 從下拉式清單中選取連接 Factory 物件類型。
  3. 按一下 [OK] 按鈕。
  4. 右窗格中會重新顯示 [Connection Factory Resources] 螢幕,其中包括清單中新建立的連接 Factory 物件。

如果此連接 Factory 建立與代理程式的連接,而不是內建 JMS 服務的代理程式連接,則必須設定 imqBrokerHostNameimqBrokerHostPort 特性的值。

變更這些特性值的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 開啟 [Connection Factories] 資料夾。
  5. 選取您要編輯的 [Connection Factory] 資源。
  6. 右窗格中會顯示 [Connection Factory] 螢幕。

  7. 在右窗格中,按一下 [Properties]。
  8. 會出現 [Edit Properties] 螢幕。

  9. 在 [Name] 欄位中,輸入 imqBrokerHostName
  10. 在 [Value] 欄位中,輸入此特性的值。
  11. 在 [Name] 欄位中,輸入 imqBrokerHostPort
  12. 在 [Value] 欄位中,輸入此特性的值。
  13. 按一下 [OK]。
  14. 右窗格中會重新顯示 [Connection Factory] 螢幕。

列示管理物件資源

列示現有管理物件的步驟:

  1. 開啟管理介面。
  2. 開啟左窗格中的伺服器實例。
  3. 開啟 [JMS] 資料夾。
  4. 選取 [Destination Resources] 或 [Connection Factory Resources] 連結。
  5. 右窗格中會顯示目前的目標或連接 Factory 管理物件。

刪除管理物件資源

刪除管理物件資源的步驟:

  1. 列示現有的管理物件資源 (請參閱「列示管理物件資源」)。
  2. 右窗格中會顯示現有的管理物件資源。

  3. 在 [Select] 方塊內,按一下您希望刪除的每個物件。

   [JMS Connection Factory] 螢幕, 重新顯示
[Application Server] 視窗顯示用於刪除管理物件的對話方塊。此螢幕使用文字方式進行解釋。

  1. 按一下 [Delete] 按鈕,移除選取的每個物件。
  2. 螢幕會重新顯示此清單,顯示其餘的管理物件資源。

使用指令行介面管理內建 JMS 服務

Sun ONE Application Server 具有指令行公用程式 asadmin,您可以使用此公用程式執行您使用管理介面可以執行的所有相同的工作。

使用以下 asadmin 指令,可配置並管理內建 JMS 服務。

   管理內建 JMS 服務的 asadmin 指令

指令

使用

add-resources

 

加入類型為 jdbc、jms 或 javamail 的一個或更多資源。

 

create-jmsdest

 

建立 JMS 實體目標。

 

create-jms-resource

 

建立 JMS 資源。

 

delete-jmsdest

 

刪除 JMS 實體目標。

 

delete-jms-resource

 

刪除 JMS 資源。

 

jms-ping

 

ping JMS 供應程式,以查看其是否在執行。

 

list-jmsdest

 

列示伺服器實例的 JMS 實體目標。

 

list-jms-resources

 

列示伺服器實例的 JMS 資源。

 

get and set jms-service

 

取得並設定 JMS 服務的屬性。

 

get and set jms-resource

 

取得並設定 JMS 資源的屬性。

 

如需關於這些指令語法的資訊,請參閱 asadmin 線上輔助說明。如需關於 asadmin 的更多資訊,以及 jms-service 與 jms-resource 的屬性清單,請參閱「使用指令行介面」


上一個      目錄      索引      下一個     
Copyright 2003 Sun Microsystems, Inc. All rights reserved.