程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> WebSphere >> 使用WAS V7中的WebSphere MQ消息傳遞提供程序,第1部分

使用WAS V7中的WebSphere MQ消息傳遞提供程序,第1部分

編輯:WebSphere

IBM® WebSphere® Application Server V7 包含一些重要改進,改進了其與作為 Java™ Message Service (JMS) 提供程序的 IBM WebSphere MQ 的互操作方法。

引言

許多組織使用 IBM WebSphere MQ 提供企業消息傳遞,並使用 IBM WebSphere Application Server 部署其 Java Platform, Enterprise Edition (Java EE) 應用程序。當 您在 WebSphere Application Server 中使用最初在 V5 中引入的 WebSphere MQ 消息傳遞提 供程序支持時,可以部署 Java EE 應用程序來直接利用 WebSphere MQ 的企業消息傳遞功能。 本文概述了新的 WebSphere MQ 消息傳遞提供程序,以及添加到 WebSphere Application Server V7 的相關增強。

本文假設您基本了解 WebSphere Application Server 和 WebSphere MQ 以及 Java Message Service (JMS) API。

什麼是 WebSphere MQ 消息傳 遞提供程序?

使用 WebSphere MQ 消息傳遞提供程序(以下簡稱“MQ 消息傳遞提 供程序”)的 Java EE 應用程序通過 JMS API 進行消息傳遞,而 WebSphere MQ 還支持 廣泛選擇其他編程 API 和環境。這意味著 Java EE 應用程序可以使用 MQ 消息傳遞提供程序 與以下應用程序通信:CICS 應用程序、在 z/OS® 上運行的後端應用程序和用各種語言編 寫的其他現有應用程序,這裡僅提供幾個示例(圖 1)。

圖 1. 使用 WebSphere MQ 在 不同的系統之間進行通信

通過 MQ 消 息傳遞提供程序,部署使用本地或全局事務的 Java EE 應用程序可以將 WebSphere MQ 作為事 務資源。例如,可以異步通知購買管理應用程序:來自 WebSphere MQ 的“填寫帳戶 ”消息已經到達。為了響應該消息,該應用程序可能更新庫存數據庫,如果客戶的信用不 夠,則向貨品計價應用程序發送另一條 WebSphere MQ 消息(圖 2)。

圖 2. 使用全局事務的示例

當然,此示 例應用程序最好能夠執行這些操作,這樣所有資源可以作為單個全局事務進行更新。事實上, 使用 MQ 消息傳遞提供程序可以做到這一點。換句話說,您可以在單個全局事務范圍中協調 WebSphere MQ 和其他事務資源,如 IBM DB2® 數據庫。

要結合使用 MQ 消息傳遞 程序和 Java EE 應用程序,必須定義一個或多個受管理對象。受管理對象保存在應用服務器的 Java Naming and Directory Interface (JNDI) 命名空間中,用於通過 JMS API 將應用程序 與在 WebSphere MQ 中定義的資源相關聯。由於 WebSphere MQ 消息傳遞提供程序受管理對象 保存在 JNDI 中,因此可以從有權訪問 JNDI 命名空間的任何流程訪問它們。

WebSphere Application Server V7 中的 MQ 消息傳遞提供程序直接支持三種受管理對 象。它們分別是:

激活規范

連接工廠

目的地。

此外,可以將消 息偵聽器端口配置為使用 MQ 消息傳遞提供程序。在接下來的各個部分中,將詳細討論 MQ 消 息傳遞提供程序受管理對象。

激活規范

WebSphere Application Server V7 中 的更新 MQ 消息傳遞提供程序支持基於 J2EE™ Connector Architecture (JCA) 1.5 兼 容資源適配器。JCA 1.5 規范的一部分定義獨立於供應商的方法,此方法可以將入站消息提交 到在 Java EE 兼容應用服務器(如 WebSphere Application Server)中運行的消息驅動的 Bean (MDB)。用於配置和設置入站消息交付的構造稱為激活規范。因此,在 WebSphere Application Server V7 中,現在可以創建 MQ 消息傳遞提供程序激活規范來管理在 WebSphere Application Server 中運行的 MDB 與 WebSphere MQ 中的目的地之間的關系。

MQ 消息傳遞提供程序激活規范現在是將消息從 WebSphere MQ 目的地提交到在 WebSphere Application Server 中運行的 MDB 的首選機制。激活規范取代了現有 WebSphere Application Server 消息偵聽器端口支持的使用,該偵聽器端口支持在 WebSphere Application Server V7 中就已經棄用。不過,仍可以使用消息偵聽器端口通過 MQ 消息傳遞 提供程序將消息提交到 MDB——甚至可以同時配置使用 MQ 消息傳遞提供程序資源的消息偵聽 器端口和 MQ 消息傳遞提供程序激活規范。

激活規范與消息偵聽器端口的比較

優先使用激活規范(而不是消息偵聽器端口)將消息提交到 MDB 的原因有多個方面。與消 息偵聽器端口相比,普通的激活規范(特別是 MQ 消息傳遞提供程序激活規范)具有以下優點 :

定義的規范:激活規范是標准規范 (JCA 1.5) 的一部分。WebSphere Application Server 中的消息偵聽器端口支持使用在 JMS 規范中定義的應用服務器設備接口,但它本身不是任何規 范的一部分。

簡化配置:要配置消息偵聽器端口,您需要以下三個配置對象:連接工廠、目的地和消息偵 聽器端口本身。使用激活規范只需兩個對象:激活規范和目的地。

不局限於服務器范圍:可以在 WebSphere Application Server 中的任何管理范圍定義激活 規范。消息偵聽器端口必須在服務器范圍配置。這意味著如果一個節點由三個服務器組成,則 必須配置三個獨立的消息偵聽器端口,而不是僅配置一個激活規范。

運行中的激活規范

圖 3 顯示了如何使用 MQ 消息傳遞提供程序激活規范將 WebSphere MQ 隊列管理器目的地 鏈接到在 WebSphere Application Server 中運行的 MDB。通過 MQ 消息傳遞提供程序激活規 范將消息從客戶端提交到 MDB 的流程采取以下方式:

在獨立流程中運行或在應用服務器環境中運行的消息傳遞客戶端使用 JMS(或任何其他消息 傳遞 API,如 MQI)將消息發送到在 WebSphere MQ 隊列管理器中定義的 WebSphere MQ 隊列 或主題。

將 WebSphere MQ 激活規范配置為在該目的地上偵聽消息。檢測到新消息時,將從該目的地 (可能位於 XA 事務下)將其刪除。

然後,通過 onMessage 方法將該消息傳遞到已配置為使用 MQ 消息傳遞提供程序激活規范 的 MDB。

MDB 使用該消息中的信息執行相關的業務邏輯。

圖 3. 運行中的 WebSphere MQ 消息傳遞提供程序激活規范

配置激活規范

配置 MQ 消息傳遞提供程序激活規范非常類似於配置 MQ 消息傳遞提供程序連接工廠。可以 使用 WebSphere Application Server 管理控制台或 wsadmin 命令行工具對它們進行配置。要 使用管理控制台創建 MQ 消息傳遞提供程序激活規范,請執行以下操作:

登錄到管理控制台。

導航至 Resources 部分。展開 JMS 選項卡,並單擊 Activation specifications。

選擇定義 MQ 消息傳遞提供程序激活規范所需的范圍。

單擊 New。

單擊 WebSphere MQ messaging provider 框,並單擊 OK。

圖 4 對這些關鍵控件的位置進行了批注。

圖 4. 配置激活規范

創建了基本 MQ 消息傳遞提供程序激活規范之後,可以使用六種不同的配置面板進一步對其 進行配置。要進一步配置 MQ 消息傳遞提供程序激活規范,請執行以下操作:

登錄到管理控制台。

導航至 Resources 部分,展開 JMS 選項卡,然後單擊 Activation specifications。

選擇定義相關 WebSphere MQ 消息傳遞提供程序激活規范的范圍。

選擇相關的 MQ 消息傳遞提供程序激活規范。

第一個面板可用於修改 MQ 消息傳遞提供程序激活規范的傳輸模式和目的地,以及其他常用 的配置設置。此頁面的右側提供指向其他配置面板的鏈接:

使用 Advanced properties 面板可以配置消息壓縮、使用者設置和消息格式設置。使用該 面板還能夠設置 MQ 消息傳遞提供程序激活規范嘗試向 MDB 提交消息的次數(如果 MDB 重復 拋出異常)。如果超過提交次數,並且正確地配置了激活規范,則失敗的 MDB 會暫停,從而提 供調查故障的機會。

可以使用 Broker properties 面板配置用於執行發布/訂閱消息傳遞的設置。並非所有屬性 都適合於所有版本的隊列管理器。在 WebSphere MQ 信息中心指定了有關哪些屬性適用於特定 版本的隊列管理器的更多信息。

可以使用 Custom properties 面板以名稱-值對的形式為 MQ 消息傳遞提供程序激活規范輸 入任何常規配置設置。通常,此信息並不是必需的。

使用 Client transport properties 面板可以輸入關於 SSL 設置和通道出口的其他信息。 如果已創建基於客戶端通道定義表 (CCDT) 的 MQ 消息傳遞提供程序激活規范,則此頁面不可 用。

最後,可以使用 JAAS-J2C authentication data 面板創建身份驗證別名,以供 MQ 消息傳 遞提供程序激活規范使用。

z/OS 上的激活規范

在 z/OS 平台上使用 MQ 消息傳遞提供程序激活規范時,可以提供若干其他功能。這些功能 是為充分利用 z/OS 的唯一可伸縮性和工作負載管理功能而設計的,它包括盡可能減少隊列管 理器端消息爭用的拆分進程激活規范實現,以及對激活規范的 z/OS 工作負載管理的支持。

將消息偵聽器端口遷移到激活規范

早期迭代 MQ 消息傳遞提供程序的用戶使用了消息偵聽器端口將消息從 WebSphere MQ 消息 傳遞提供程序目的地提交到在 WebSphere Application Server 中運行的 MDB。遷移到 WebSphere Application Server V7 時,可以改為使用 MQ 消息傳遞提供程序激活規范。為使 遷移到激活規范的任務變得更容易,已經提供了若干工具。

從消息偵聽器端口進行遷移時,第一個任務是創建新的 MQ 消息傳遞提供程序激活規范。可 以通過從頭創建激活規范來完成此任務,也可以使用工具基於特定消息偵聽器端口配置的設置 創建 WebSphere MQ 消息傳遞提供程序激活規范來完成此任務。

您可以從 wsadmin 命令行工具使用 migrateWMQMLP 命令來執行遷移。在管理命令簡介部分 中可以看到此命令的示例調用。

此外,還可以使用 WebSphere Application Server 管理控制台進行遷移。要對現有消息偵 聽器端口完成此任務,請執行以下操作:

登錄到管理控制台。

導航到 Servers => Server Types => WebSphere application servers(圖 5), 並單擊對應的應用服務器。在右側的 Communications 標頭下,展開 Messaging 選項卡,並單 擊 Message listener service 鏈接。在 Additional 屬性下,單擊 Listener Ports 鏈接。

圖 5. 從消息偵聽器端口遷移

選擇要轉換為 MQ 消息傳遞提供程序激活規范的消息偵聽器端口,並單擊 Convert to activation specification 按鈕(圖 6)。

圖 6. 轉換為激活規范

如果需要,更改新 MQ 激活規范的管理名稱和 JNDI 名稱的值。另外,請選擇應定義激活規 范的相關范圍。因為在任何范圍都可以創建激活規范,所以您可能無需遷移所有消息偵聽器端 口配置,尤其是在集群環境中。如果遷移多個消息偵聽器端口配置,請注意避免 JNDI 名稱沖 突。單擊 Next。

圖 7. 名稱激活規范

請查看摘要信息,如果沒有錯誤,請單擊 Finish。

遷移消息偵聽器端口配置後,應配置相應的 MDB,才能使用新的 MQ 消息傳遞提供程序激活 規范。當任何 MDB 都不再引用消息偵聽器端口時,可以通過管理控制台或 wsadmin 將其安全 刪除。

連接工廠的更改

WebSphere Application Server V7 中的 MQ 消息傳遞提供程序繼續對連接工廠提供完全支 持,其方式與以前版本中的方式大致相同。不過,除支持某些功能外,還添加了許多增強功能 ,使創建和配置連接工廠變得更加容易。本部分將概述這些增強功能。

連接工廠創建向導

現在,隨著連接工廠創建向導的引入,在 WebSphere Application Server V7 中可以更方 便地管理使用管理控制台創建 MQ 消息傳遞提供程序連接工廠的流程。該向導通過提示您輸入 最常見的配置屬性信息來提供創建基本連接工廠配置的簡單方法。然後,可以使用增強的 MQ 消息傳遞提供程序連接工廠面板定制新的連接工廠,以滿足您的特定需求。

啟動此向導的方法與啟動激活規范大致相同,不同的是應選擇需要創建的連接工廠的類型。

連接工廠的新功能

在 WebSphere Application Server V7 中添加了對許多重要 MQ 消息傳遞提供程序連接工 廠配置參數的完全支持。其中最重要的支持也許是 WebSphere Application Server 中與 SSL 支持的更好集成,以及對創建基於 CCDT 的消息傳遞提供程序連接工廠的完全支持。消息傳遞 提供程序連接工廠現在還公開支持消息標題和有效負載壓縮。

重新設計的連接工廠管理面板

WebSphere Application Server V7 中明顯更改了 MQ 消息傳遞提供程序連接工廠的管理控 制台面板的結構和布局。通過將許多不同面板上各個部分中的相關屬性組合在一起,此重構使 配置 MQ 消息傳遞提供程序連接工廠變得更加容易:

General properties 面板(圖 8)顯示了最常用的配置屬性,如管理信息、連接配置、安 全設置等,並提供指向其他面板的鏈接(已在 Additional Properties 標題下列出)。

Advanced properties 面板用於配置更加專業的選項,如消息標頭和有效負載壓縮屬性、臨 時目的地的前綴和連接使用者設置。

僅當創建統一連接工廠或主題連接工廠時,Broker properties 面板才可用,該面板可提供 配置基於發布/訂閱的消息傳遞所使用的各種功能和隊列的機會。

使用 Custom properties 面板以名稱-值對的形式創建自定義屬性。可以使用這些自定義屬 性配置無法通過 WebSphere Application Server V7 管理工具提供的連接工廠設置。

如果創建了基於非 CCDT 的 MQ 消息傳遞提供程序連接工廠,則可以使用 Client transport properties 面板添加和配置通道出口,以及提供對更高級的 SSL 配置屬性的訪問 。

可以使用 Connection and session pool 面板更改池的缺省設置,這些池用於管理從特定 連接工廠創建的連接和會話對象。值得一提的是,每個 MQ 消息傳遞提供程序連接工廠都有單 一的連接池,池中的每個連接都有自已的會話池。例如,缺省池大小為 10 表示每個池中最多 有 10 個連接,每個連接有 10 個會話,總共有 100 個會話。

可以使用 JAAS - J2C authentication data 面板創建身份驗證別名,以供 MQ 消息傳遞提 供程序連接工廠使用。

圖 8. 常規屬性面板

更好地支持 SSL

安全套接字層 (SSL) 協議在遠程服務器流程或端點之間提供安全通信。SSL 安全可用於建 立來自端點的入站通信和指向端點的出站通信。要建立安全通信,必須為端點指定證書和 SSL 配置。

在以前的 WebSphere Application Server 版本中,指向 WebSphere MQ 的基於 SSL 的連 接依賴於定義的 JVM 自定義屬性(主要用於基於客戶端容器的環境)或節點的缺省 SSL 配置 ,來指定要使用的密鑰存儲庫和信任存儲庫,並為每個連接工廠指定 SSL 密碼套件。

WebSphere Application Server V7 在指定 SSL 配置數據方式上包含若干重要更改:

不是使用 SSL 的缺省節點配置,而是專門為 WebSphere MQ 客戶端連接(名為 WebSphere MQ Client)添加了新的出站端點安全配置,允許進行自定義,從節點的缺省配置單獨修改 WebSphere MQ 連接的缺省 SSL 配置。

在定義 MQ 消息傳遞提供程序連接工廠或激活規范時,現在有兩種方法可以獲取 SSL 配置 數據:

集中管理:在 WebSphere Application Server V7 中使用連接工廠或激活規范時,當選擇 此選項時將使用該服務器的新增 WebSphere MQ Client 端點安全配置。如果在客戶端容器中使 用連接工廠,則使用該客戶端的 ssl.client.props 文件中的設置。

特定的配置:您可以使用在計算單元中定義的任何 SSL 配置。

在新的 WebSphere MQ Client 端點中,可以根據目標主機和端口信息定義動態出站端點 SSL 配置。

現在將從 SSL 配置(而不是連接工廠)獲取 SSL 密碼套件。盡管仍可能覆蓋每個連接工廠 上使用的 SSL 密碼套件,但此操作無需為創建的每個連接工廠手動輸入密碼套件。

對 CCDT 的完全支持

在 WebSphere Application Server V7 中,現在有兩種方法指定 MQ 消息傳遞提供程序連 接工廠或激活規范所需的信息,以便它們可以連接到 WebSphere MQ 隊列管理器。第一種方法 需要您手動輸入所有的信息。第二種方法是向 MQ 消息傳遞提供程序資源提供指向客戶端通道 定義表 (CCDT) 的統一資源定位符 (URL)。

CCDT 是一種二進制文件,它包含有關如何創建指向一個或多個隊列管理器的客戶端連接通 道的信息。該文件包含的信息有目標隊列管理器的主機名、端口和名稱,以及更高級的配置信 息,如應該使用的 SSL 屬性。通過 WebSphere MQ 隊列管理器或使用 SupportPac MO72 提供 的獨立工具可以生成 CCDT。

使用 CCDT 創建 MQ 消息傳遞提供程序資源可以提供以下好處:

在單一位置中包含客戶端連接通道信息。如果任何信息發生更改(如 WebSphere MQ 隊列管 理器駐留的計算機的主機名),則只需更新 CCDT,使用 CCDT 的所有 WebSphere MQ 消息傳遞 提供程序資源將拾取該更改。

由於需要的信息較少,因此減少了配置錯誤發生的機會。使用 CCDT 輸入連接信息時,所需 的全部輸入內容是 CCDT URL 和一個可選的隊列管理器名稱。如果手動配置 MQ 消息傳遞提供 程序資源,則需要非常多的信息——特別是配置 SSL 時。

使用 Java 編寫的通道出口

通道出口是在 WebSphere MQ 通道生命周期中的定義點運行的用戶代碼。通道出口有許多潛 在的用途,其中包括審核、安全、壓縮、轉換等。WebSphere Application Server V7 中的 MQ 消息傳遞提供程序提供對基於 Java 的通道出口的完全支持。

在以前的 WebSphere Application Server 版本中,必須使用自定義屬性配置通道出口。在 WebSphere Application Server V7 中,可以使用管理控制台、管理命令在連接工廠和激活規 范上配置通道出口,或者在 CCDT 條目中指定它們。

要使用通道出口,MQ 消息傳遞提供程序連接工廠或激活規范必須具有傳輸類型“客戶端” 或“綁定然後客戶端”。這是因為使用基於客戶端通道的連接連接到 WebSphere MQ 隊列管理 器或隊列共享組時,只能使用通道出口程序。如果選擇“綁定然後客戶端”傳輸模式,則僅在 綁定模式連接失敗時,才驅動通道出口。

MQ 消息傳遞提供程序支持以下三種不同類型的通道出口:

在通道啟動的過程中調用安全出口,顧名思義,它通常用於授權目的。不過,安全出口用於 運行在通道啟動時僅需運行的任何其他代碼。

通過通道發送傳輸之前和通過通道接收傳輸之後會立即分別調用發送出口和接收出口。發送 和接收出口的可能用途包括壓縮或日志記錄。

傳輸類型的自動選擇

企業應用程序使用 MQ 消息傳遞提供程序連接到隊列管理器時,共有兩個主要方法來進行此 連接。一種選擇是使用基於 TCP/IP 的網絡連接;此方法稱為客戶端模式連接。另一種選擇是 使用交叉內存進程間通信,通常將此方法稱為綁定模式連接。盡管連接機制的選擇對企業應用 程序是透明的,但是名為傳輸模式的此信息將形成 MQ 消息傳遞提供程序連接工廠和激活規范 配置的一部分。

在 MQ 隊列管理器與 WebSphere Application Server 運行於同一節點的配置中,使用綁定 模式可提供性能優勢。當隊列管理器和應用服務器由網絡連接的不同計算機承載時,將需要客 戶端模式連接。當使用新的“綁定然後客戶端”模式時,將首先嘗試指向隊列管理器的綁定模 式連接,如果無法實現此連接,則建立客戶端模式連接。

創建或修改 WebSphere MQ 消息傳遞提供程序激活規范或連接工廠時,可以選擇“綁定然後 客戶端”傳輸模式。

通道壓縮

在 WebSphere Application Server V7 中啟用新的道通壓縮支持時,消息內容通過網絡傳 輸時將被壓縮。此壓縮適用於跨應用服務器中運行的企業應用程序與它們連接的隊列管理器之 間的鏈接傳輸的數據。

如果使用通道壓縮,則從應用程序角度而言對消息數據的操作是透明的;在 WebSphere MQ 排列消息數據之前會自動對其解壓縮。這使得通道壓縮的使用對連接到隊列管理器的其他 WebSphere MQ 應用程序同樣透明。圖 9 顯示了壓縮和解壓縮消息數據的關鍵點。

圖 9. 通道壓縮

使用通道壓縮有助於提高在應用服務器和隊列管理器之間傳輸消息的速度。這是因為壓縮在 消息中發送或接收的數據可以減少傳輸該消息所需的網絡帶寬。

在某些情況下,使用通道壓縮可以減少為基於 SSL 的連接加密數據花費的處理器時間。這 是因為加密數據花費的時間通常取決於加密的數據量,而不是實際的數據內容。因此,如果您 的數據壓縮完好,您會發現處理器壓縮數據、然後加密該數據所花費的時間明顯少於加密所有 非壓縮數據所花費的時間。

WebSphere Application Server V7 支持兩種類型的壓縮:

行程編碼 (RLE) 壓縮算法需要非常少的處理器時間,適用於在連續位置重復許多相同字節 值的數據。對不具有此重復級別的數據無效。

ZLIB 壓縮算法需要更多的處理器時間,但適用於更具變化性的數據。

可以通過 WebSphere Application Server 管理控制台或 wsadmin 命令行接口啟用通道壓 縮。要使用管理控制台啟用通道壓縮(圖 10),請執行以下操作:

登錄到管理控制台。

導航至 Resources 部分,展開 JMS 選項卡,單擊 Activation specifications 或適當類 型的連接工廠鏈接。

單擊要啟用通道壓縮的連接工廠或激活規范,並選擇右側的 Advanced properties 鏈接。

在頁面的頂部將顯示 Message compression 部分。要啟用標題壓縮,請選中 Compress message headers 框,如圖中紅色箭頭所示。要壓縮消息有效負載,請從下拉框中選擇所需的 壓縮算法,如下面的藍色箭頭所示。

圖 10. 啟用通道壓縮

管理命令簡介

在 V7 之前的版本中,可以在 WebSphere Application Server 中通過管理控制台或使用 wsadmin 工具直接操作 WebSphere Application Server 配置模型來配置 MQ 消息傳遞提供程 序資源。

通過 wsadmin 直接與 WebSphere Application Server 配置模型進行互操作有一定的缺陷 ,容易出現錯誤。WebSphere Application Server V7 中引入了一組新的管理命令,可以通過 這些命令來創建、修改、刪除和顯示 MQ 消息傳遞提供程序資源,還引入了相關功能,如將消 息偵聽器端口遷移到 MQ 消息傳遞提供程序激活規范。

新命令包括若干參數,可以對基礎配置文檔執行適當的操作。和直接與配置模型進行互操作 相比,使用這些命令的一些主要好處有:

該命令可提供輸入驗證,從而有助於確保對配置模型的任何更改都正確無誤。這可以防止由 於配置模型損壞而導致的啟動錯誤。

這些命令會以文檔的形式記錄下來,並提供命令行幫助信息來幫助用戶。

所有的 MQ 消息傳遞提供程序管理命令都是 WMQAdminCommands 命令組的一部分,可以使用 Jython 或 JACL 運行它們。通過將以下 Jython 命令輸入到 wsadmin 提示符可以獲取所有不 同命令的摘要信息:

wsadmin>print AdminTask.help('WMQAdminCommands')

WMQAdminCommands 命令組由六個命令集組成,以下各部分將描述這些命令集。創建 MQ 消 息傳遞提供程序資源時,一般情況下,管理名稱和 JNDI 名稱在創建它的范圍中必須是唯一的 ,否則會產生錯誤消息。

激活規范命令

為操作 WebSphere MQ 消息傳遞提供程序激活規范,共提供了以下五個命令:

createWMQActivationSpecification:在特定范圍創建新的消息傳遞程序激活規范。例如, 以下命令代碼可在節點范圍創建簡單的基於 CCDT 的 WebSphere MQ 消息傳遞提供程序激活規 范:wsadmin>node = AdminConfig.list('Node')
wsadmin>AdminTask.createWMQActivationSpec(node, ["-name MyActivationSpec
-jndiName  'jms/MyActivationSpec' -destinationJndiName 'jms/MyQueue'
-destinationType javax.jms.Queue -ccdtUrl 'file://ccdt.tab' -ccdtQmgrName  QM12"])

listWMQActivationSpecs:列出在特定范圍定義的、當前配置的所有 MQ 消息傳遞提供程序 激活規范:wsadmin>AdminTask.listWMQActivationSpecs(node)
'MyActivationSpec(cells/L3A3316Node04Cell/nodes/L3A3316Node05|resources
.xml#J2CActivationSpec_1219672912125)
MyOtherActivationSpec(cells/L3A3316Node04Cell/nodes/L3A3316Node05|resources
.xml#J2CActivationSpec_1219673212812)'

showWMQActivationSpec:分別顯示每個激活規范: wsadmin>AdminTask.showWMQActivationSpec('MyActivationSpec(
cells/L3A3316Node04Cell/nodes/L3A3316Node05|resources.xml#J2CActivationSpec
_1219672912125)')

modifyWMQActivationSpec:改變現有 MQ 消息傳遞提供程序激活規范的配置。(無法將現 有的基於 CCDT 的激活規范更改為基於非 CCDT 的激活規范。)例如,以下命令代碼可修改消 息傳遞提供程序激活規范,以便在 JNDI 中引用不同的目的地: wsadmin>AdminTask.modifyWMQActivationSpec('MyActivationSpec(
cells/L3A3316Node04Cell/nodes/L3A3316Node05|resources.xml#J2CActivationSpec
_1219672912125)', ["-destinationJndiName 'jms/AnotherWMQQueue'"])

deleteWMQActivationSpec:刪除 MQ 消息傳遞提供程序激活規范。例如,以下命令代碼可 刪除以前創建的激活規范:wsadmin>AdminTask.deleteWMQActivationSpec ('MyActivationSpec(
cells/L3A3316Node04Cell/nodes/L3A3316Node05|resources.xml#J2CActivationSpec
_1219672912125)')

連接工廠命令

為操作 MQ 消息傳遞提供程序連接工廠,還提供了另一個由五個命令組成的集合。這些命令 適用於所有三種類型的連接工廠:統一、隊列和主題。

createWMQConnectionFactory:在特定的范圍創建 MQ 消息傳遞提供程序連接工廠。類型參 數將指定是否創建基於統一、隊列或主題的連接工廠,並分別采用值 CF、QCF 或 TCF。例如, 以下命令代碼可創建使用發送出口、接收出口和其余缺省值配置的統一連接工廠: wsadmin>AdminTask.createWMQConnectionFactory(node, ["-name MyCF 
-jndiName 'jms/MyCF' -type CF -rcvExit com.example.ReceiveExit - rcvExitInitData
'debug=true' -sendExit com.example.SendExit -sendExitInitData  'compression=normal'"])

modifyWMQConnectionFactory:修改現有 MQ 消息傳遞提供程序連接工廠。無法使用此命令 更改連接工廠的類型。例如,以下命令代碼可從上面創建的連接工廠中刪除發送和接收通道出 口配置:wsadmin>AdminTask.modifyWMQConnectionFactory('MyCF(cells/
L3A3316Node04Cell/nodes/L3A3316Node05|resources.xml#MQConnectionFactory
_1219674863640)', ["-rcvExit '' -rcvExitInitData '' -sendExit ''
-sendExitInitData ''"])

listWMQConnectionFactories、showWMQConnectionFactory 和 deleteWMQConnectionFactory:分別列出特定范圍的所有 MQ 消息傳遞提供程序連接工廠、顯 示單個 MQ 消息傳遞提供程序連接工廠和刪除 MQ 消息傳遞提供程序連接工廠。例如,以下命 令代碼可驗證 MyCF 上不再設置通道出口參數: wsadmin>AdminTask.showWMQConnectionFactory('MyCF(cells/
L3A3316Node04Cell/nodes/L3A3316Node05|resources.xml#MQConnectionFactory
_1219674863640)')

目的地命令

為創建和操作 MQ 消息傳遞提供程序隊列和主題,共提供了兩個命令集。可以使用 createWMQTopic 和 createWMQQueue 命令創建相關范圍的消息傳遞提供程序隊列或主題。例如 ,以下命令代碼可在服務器范圍創建 MQ 消息傳遞提供程序隊列:

wsadmin>server = AdminConfig.list('Server')
wsadmin>AdminTask.createWMQQueue(server, ["-name MyQueue -jndiName
'jms/MyQueue' -queueName q1.in -useNativeEncoding false -integerEncoding
Reversed -decimalEncoding Reversed -floatingPointEncoding IEEEReversed"])

類似地,以下命令代碼可創建服務器范圍的 WebSphere MQ 消息傳遞提供程序主題:

wsadmin>AdminTask.createWMQTopic(server, ["-name MyTopic - jndiName
'jms/MyTopic' -topicName sport/football -useNativeEncoding false - integerEncoding
Reversed -decimalEncoding Reversed -floatingPointEncoding IEEEReversed"])

要列出特定范圍的所有 WebSphere MQ 消息傳遞提供程序主題或隊列,請使用 listWMQTopics 和 listWMQQueues 命令,並作為參數提供所需范圍的名稱。要查看特定 MQ 消 息傳遞提程序隊列或主題的配置,請使用 showWMQTopic 或 showWMQQueue 命令,並傳入要顯 示的對象名稱。例如,要顯示以前創建的主題,請輸入: wsadmin>AdminTask.showWMQTopic('MyTopic(cells/L3A3316Node04Cell/
nodes/L3A3316Node05/servers/server1|resources.xml#MQTopic_1219676983984)')

可以使用 modifyWMQQueue 和 modifyWMQTopic 命令修改特定 MQ 消息傳遞提供程序主題或 隊列的屬性。例如,可以使用此 modifyWMQQueue 命令將 useNativeEncoding 設置回缺省值 true:wsadmin>AdminTask.modifyWMQQueue('MyQueue (cells/L3A3316Node04Cell/
nodes/L3A3316Node05/servers/server1|resources.xml#MQQueue_1219676256312)',
["-useNativeEncoding true"])

然後,要驗證是否正確地進行了更改,您可以運行 showWMQQueue 命令: wsadmin>AdminTask.showWMQQueue('MyQueue(cells/L3A3316Node04Cell/
nodes/L3A3316Node05/servers/server1|resources.xml#MQQueue_1219676256312)')

manageWMQ 命令

manageWMQ 命令具有三種用途:

它可以通過查詢選項提供有關可用於調試目的的 MQ 消息傳遞提供程序實例的版本信息。

它可以使用 nativePath 選項設置本機路徑信息,如果使用指向隊列管理器的綁定模式連接 則需要該信息。

它可以在 z/OS 平台上使用 enableInbound 選項為入站消息交付啟用控制區域調整流程。 如果使用 nativePath 或 enableInbound 選項,那麼要使更改生效,必須再循環相關的應用服 務器流程。

調用 manageWMQ 命令時,需要提供安裝的資源適配器(服務器、節點或計算單元范圍)的 對象名稱。通過查看相關的 J2CResourceAdapter 對象可以獲取此信息。此示例顯示了使用通 配符查找這些對象的方式:

wsadmin>AdminConfig.list('J2CResourceAdapter', '*WebSphere MQ*')

下面的示例說明了如何在從上一示例返回的節點范圍獲取安裝的 MQ 消息傳遞提供程序的版 本信息:

wsadmin>AdminTask.manageWMQ("WebSphere MQ Resource Adapter (cells/
L3A3316Node04Cell/nodes/L3A3316Node05|resources.xml#J2CResourceAdapter_ 
1216206449734)", ["-query"])

使用 nativePath 選項指定本機路徑信息時,服務器范圍的路徑信息將覆蓋節點和計算單元 范圍的路徑信息。類似地,設置節點范圍的本機路徑信息會覆蓋在計算單元范圍指定的配置。 使用此選項時提供的路徑必須指定包含本機庫的目錄的完整路徑。例如,以下命令代碼可在計 算單元范圍指定本機路徑信息:

wsadmin>AdminTask.manageWMQ("WebSphere MQ Resource Adapter (cells/
L3A3316Node04Cell|resources.xml#J2CResourceAdapter_1216206454984)", ["- nativePath
'c://Program Files//IBM//WebSphere MQ//Java//lib//'"])

下面是使用 enableInbound 選項的示例。使用此選項時,傳入的 J2CResourceAdapter 對 象必須在服務范圍,否則會產生錯誤:

wsadmin>AdminTask.manageWMQ("WebSphere MQ Resource Adapter (cells/
L3A3316Node04Cell/nodes/L3A3316Node05/servers/server1|resources.xml#J2CResourceAdap ter
_1216206454812)", ["-enableInbound"])

migrateWMQMLP 命令

可以使用 migrateWMQMLP 命令將使用 MQ 消息傳遞提供程序資源的消息偵聽器端口遷移到 MQ 消息傳遞提供程序激活規范。例如,以下命令代碼可查找和選擇特定的消息偵聽器端口,然 後將其轉換為服務器范圍的 MQ 消息傳遞提供程序激活規范:

wsadmin>lp1 = AdminConfig.list('ListenerPort')
wsadmin>AdminTask.migrateWMQMLP(lp1, ["-asName as1 -asJNDIName jms/as1
-asScope server"])

總結

本文簡要概述了在 WebSphere Application Server V7 的 WebSphere MQ 消息傳遞提供程 序中的新功能,並提供了描述如何使用這些功能的示例。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved