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