sca60c使用程序_第3部分:SCA应用程序的工作负载平衡的WebSphere MQ客户端连接
sca60c使用程序
本文提供了服務組件體系結構(SCA)代碼示例,這些示例顯示了應用程序如何創建到IBM?WebSphere?MQ隊列管理器集群的工作負載平衡的連接。 這些代碼示例與本系列第2部分中提供的Java?Enterprise Edition(Java EE)代碼示例相似,并且它們使用相同的WebSphere MQ沙箱環境。 本文還向您展示了如何將示例應用程序部署到IBM Business Process Manager Advanced(以下稱為IBM BPM)單服務器和網絡部署環境。 樣本應用程序也可以部署在WebSphere Enterprise Service Bus上。 您可以將這些示例用作執行JMS消息傳遞的任何SCA應用程序的基礎,包括以下JMS用例:
- 消息偵聽器 -開始長時間運行的偵聽器,以處理到達隊列或持久訂閱中處理的消息。
- 一勞永逸 -將消息發送到隊列或發布到主題,而無需響應。 示例包括發送數據更新,發出事件或發送對請求的答復。
- 同步請求-響應 -發送請求消息,在該消息中立即需要響應才能繼續處理,例如查詢基本數據。
- 雙向異步消息傳遞 -使用即發即忘的請求和消息偵聽器的響應,可以隨時處理響應。
像本系列第2部分中的Java EE代碼示例一樣,本部分中的代碼示例按原樣提供,它們向您展示如何使用WebSphere MQ V7.0.1,V7中的功能實現持續的服務可用性和工作負載平衡的連接。 .1和V7.5。 第3部分中的示例未利用WebSphere MQ客戶端通道定義表(CCDT),連接名稱列表或自動客戶端重新連接功能提供的任何內置工作負載平衡或重新連接功能,以支持兩階段(XA) / JTA)事務,與使用Java EE連接池和IBM BPM的其他功能相比,具有最大的靈活性。
第2部分提供的用于設置WebSphere MQ和WebSphere Application Server的腳本示例也可以用于設置運行本文中的SCA示例的環境。 但是,高級請求-響應示例無法通過SCA輕松實現,因此本文中將不涉及。 在本文的底部,您可以下載這些WebSphere MQ和WebSphere Application Server腳本的簡化版本,這些腳本不會為高級請求-響應示例創建資源。
SCA工作負載管理
與第2部分中一樣 ,本文中的示例假定WebSphere MQ拓撲中沒有在應用程序服務器計算機上本地運行的WebSphere MQ隊列管理器。 相反,應用程序通過網絡連接到由包含多個活動隊列管理器的WebSphere MQ集群組成的WebSphere MQ集線器。 因此,必須將應用程序配置為通過網絡作為WebSphere MQ客戶端連接到WebSphere MQ集線器中的一個或多個隊列管理器。 出于可用性和可伸縮性的原因,您應該為單個應用程序提供多個隊列管理器,以便通過WebSphere MQ集群中的一組隊列管理器之間的工作負載平衡進行連接。 下面的部分向您展示如何針對出站和入站消息傳遞方案執行此操作。
出站工作負載管理
SCA應用程序依賴于應用程序服務器與Java EE應用程序相同的連接池和事務管理功能。 因此,當使用WebSphere MQ客戶端通道定義表(CCDT)或連接名稱列表時,SCA應用程序遇到與Java EE應用程序相同的限制(有關更多信息,請參閱第2部分 )。 為了應對這些限制,提供了Java EE示例代碼庫的擴展,以執行SCA應用程序的出站工作負載管理。
使用WebSphere MQ或WebSphere MQ JMS導入綁定配置MQ應用程序中的出站WebSphere MQ連接。 為了對每個出站連接執行工作負載管理,必須配置兩個或多個導入綁定以指向不同的發送網關。 通過使用代碼庫中包含的WLMSCAAttach類提供的API,可以使用SCA Java組件將出站消息路由到這些導入。
圖1. WLMSCAAttach類提供的API
SCA Java組件實現與WebSphere MQ JMS導入相同的接口,并充當WLMSCAAttach類的適配器。 需要使用工作負載管理的出站連接的SCA導出或組件可以僅引用SCA Java組件,而不是直接引用單個WebSphere MQ JMS導入。 因此,不必更改現有SCA組件的實現即可使用WLMSCAAttach類的工作負載管理功能。 在實現接口的SCA Java組件的方法中,取決于所需的交互樣式,可以使用WLMSCAAttach類的一種或兩種方法。 下表提供了WLMSCAAttach類提供的方法的簡短說明。 有關Java服務調用的更完整描述,請參閱developerWorks文章WebSphere Process Server中的異步處理 。
表1. WLMSCAAttach類提供的API
| invokeAsync | 此方法實現目標服務的異步調用。 發送請求消息后,立即返回控制。 |
| invokeAsyncWithResponse | 此方法實現目標服務的同步調用。 發送請求消息后,線程將阻塞直到返回響應。 該方法提供了定義超時的選項。 |
使用多個端點的入站偵聽器工作負載管理
管理與WebSphere MQ的入站偵聽器連接的主要挑戰是,即使一個應用程序實例失敗,也要確保每個集群隊列都附加了一個應用程序實例。 本文介紹的解決方案是讓每個應用程序實例同時偵聽多個隊列管理器,如第1部分中所述。 WebSphere MQ JMS資源適配器激活規范僅支持連接到單個隊列管理器和單個隊列,但是在SCA模塊中,可以通過對集群隊列的每個實例使用WebSphere MQ JMS導出來避免此限制。 此方法已在下面說明的SCA代碼示例中使用。
SCA應用程序示例
本文提供了一組SCA應用程序,這些應用程序演示了負載均衡的入站和出站WebSphere MQ客戶端連接。 它們旨在共同為您提供一個沙箱環??境,您可以在其中探索行為的各個方面。 有一組帶有Web服務接口的發送組件,這些組件使用即發即忘和同步請求響應模式發送請求消息,還有一個偵聽器組件為兩個發送組件發送的消息提供服務。
圖2.可下載的SCA應用程序概述
這些示例是作為IBM Integration Designer項目(使用V7.5.1.1創建的)提供的,帶有一組預編譯的可部署EAR文件,如下所述:
- WLMJMSAttachLibrary-此代碼庫是第2部分提供的庫的擴展。 該庫包含WLMSCAAttach類,該類提供出站工作負載管理功能,如本文前面的部分所述。
- WLMSCAReceiver –一個SCA中介流組件示例,它使用兩個WebSphere MQ JMS導出偵聽請求,對于請求-響應示例,通過傳遞請求的導出發送回響應。
- WLMSCAReceiverApp –為包含WLMSCAReceiver組件的SCA模塊自動生成的企業應用程序項目。
- WLMSCAAsyncSender –一個示例SCA Java組件,該組件轉發通過Web服務導出接收的即發即棄請求消息。
- WLMSCASyncSender –一個示例SCA Java組件,它轉發通過Web服務導出接收的請求消息并同步返回接收到的響應。
- WLMSCASenderApp –為包含WLMSCAAsyncSender和WLMSCASyncSender組件的SCA模塊自動生成的企業應用程序項目。
一勞永逸的例子
WLMSCAAsyncSender SCA Java組件使用WLMSCAAttach類的invokeAsync方法將請求消息放入(群集的)WLMMDB.REQUEST隊列。 WLMSCAAttach類執行有效的循環工作負載管理,以通過WebSphere MQ發送網關之一放置請求消息。 此組件的功能是通過Web服務導出公開的,可以由任何合適的Web Service客戶端調用。
WLMSCAReceiver SCA中介組件接收到請求消息,該組件僅使用WLMJMSLogger類將消息打印到SystemOut或跟蹤日志中。
請求-響應示例
WLMSCASyncSender SCA Java組件使用WLMSCAAttach類的invokeAsyncWithResponse方法將請求消息放入(聚集的)WLMMDB.REQUEST隊列。 然后,它在(非集群的)SENDINGAPP.REPLY隊列中等待響應消息。 然后,此響應消息返回到發送請求消息的Web服務客戶端。
為了完成請求的發送,必須在等待響應之前,通過將兩個SCA引用的“異步調用”服務質量限定符設置為“呼叫”,立即提交該請求。 參考限定符還用于將消息的請求和響應到期時間都設置為30秒。
該請求消息由WLMSCAReceiver SCA中介組件接收。 該組件將請求消息打印到SystemOut或跟蹤日志,并在隨機延遲(可以通過promotable屬性配置)之后使用BO映射創建響應消息。 響應消息是通過接收請求的WebSphere MQ JMS導出返回的,以確保SCA運行時會將響應消息返回到用于發送請求消息的WebSphere MQ JMS導入。
WebSphere MQ集線器沙箱環境
本文中使用的WebSphere MQ集線器沙箱環境是第2部分中使用的環境的簡化版本。 如下圖3所示,它包含一個由兩個隊列管理器組成的WebSphere MQ集群。 兩個隊列管理器都充當發送網關和接收網關。 隊列管理器配置為接受來自SCA應用程序的客戶端連接,并定義了運行應用程序所需的所有隊列。
圖3.通過提供的MQSC腳本創建的WebSphere MQ沙箱環境
要在安裝了WebSphere MQ V7.0.1或更高版本的Linux?,UNIX?或Windows?計算機上創建WebSphere MQ集線器沙箱環境,請從已提取MQSC腳本的目錄中運行以下命令: Gateway1.MQSC和Gateway2.MQSC :
crtmqm GATEWAY1 crtmqm GATEWAY2 strmqm GATEWAY1 strmqm GATEWAY2 runmqsc GATEWAY1 < Gateway1.MQSC runmqsc GATEWAY2 < Gateway2.MQSC本文附帶的MQSC腳本是第2部分提供的腳本的簡化版本。 因此,如果您已經在要測試這些示例的環境中運行了這些腳本,則無需進行任何更改。 第2部分還描述了此環境的局限性,必須加以考慮。
IBM BPM環境
您可以選擇將兩個應用程序都部署到現有的單個服務器或集群的IBM BPM環境中。 在部署應用程序之前,必須調整WebSphere MQ資源適配器,并且必須正確配置所需的JMS資源。
調優WebSphere MQ資源適配器
為了滿足第1部分中描述的非功能性標準,您需要確保已調整IBM BPM環境中的WebSphere MQ資源適配器以最大化應用程序的可靠性。 第2部分提供了有關調優的完整描述,以及執行調優的Jython腳本。 您可以下載本文底部的Jython腳本,并從Deployment Manager或單個服務器配置文件中按以下方式運行它:
- Windows: C:\ path \ to \ AppServer \ profiles \ PROFILE_NAME \ bin \ wsadmin -lang jython -f Configure_MQRA.py
- Linux: / path / to / AppServer / profiles / PROFILE_NAME /bin/wsadmin.sh -lang jython -f Configure_MQRA.py
在JNDI中創建JMS資源
第2部分描述了必須創建的JMS資源以及創建它們的Jython腳本。 本文中的示例使用了這些資源的一部分,因此,本文底部的下載中包含了Jython腳本的簡化版本。 要運行它,請使用以下命令:
- Windows: C:\ path \ to \ AppServer \ profiles \ PROFILE_NAME \ bin \ wsadmin -lang jython -f Configure_JMS_resources.py
- Linux: / path / to / AppServer / profiles / PROFILE_NAME /bin/wsadmin.sh -lang jython -f Configure_JMS_resources.py
部署應用
在IBM Integration Designer中,通過“服務器”視圖將WLMSCAReceiverApp和WLMSCASenderApp應用程序添加到已配置的IBM BPM開發環境中。 對于網絡部署環境,您可以使用Integrated Solutions Console從下載中包含的EAR文件中部署應用程序,然后啟動這些應用程序。 您可以使用腳本來部署和啟動應用程序,但是本文沒有提供腳本。
測試應用程序
即興即忘和請求-響應示例均作為Web服務實現,這意味著您可以使用任何合適的Web Service客戶端來測試示例。 在IBM Integration Designer中,您可以使用Integration Test Client測試示例,但是下載內容還包括SoapUI和JMeter的測試腳本。
SoapUI測試腳本包含兩個示例SOAP請求,以測試即發即忘和請求響應示例。 在運行示例請求之前,您可能必須將端點的主機名和端口號更改為適合您的環境的值。
JMeter測試腳本已設置為請求-響應示例的負載測試。 該測試假定示例應用程序已安裝在具有至少兩個集群成員的集群環境中。 SOAP請求被間歇地發送到這些集群成員中的每一個。 包含這些請求的線程組已配置為同時處理五個請求,以測試應用程序在負載下的行為。 每個SOAP請求都包含一個唯一的標識符,并且測試計劃驗證該標識符是否也包含在響應消息中。
翻譯自: https://www.ibm.com/developerworks/websphere/library/techarticles/1403_broadhurst/1403_broadhurst.html
sca60c使用程序
總結
以上是生活随笔為你收集整理的sca60c使用程序_第3部分:SCA应用程序的工作负载平衡的WebSphere MQ客户端连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XTF格式侧扫声呐数据格式解析
- 下一篇: 世界的尽头是铁岭,互联网的尽头是它