sca60c(sca60c使用程序_第3部分:SCA应用程序的工作负载平衡的WebSphere MQ客户端连接「终于解决」)

发布时间:2025-12-10 19:23:26 浏览次数:3

sca60c使用程序_第3部分:SCA应用程序的工作负载平衡的WebSphere MQ客户端连接「终于解决」-sca60c传感器数据手册

sca60c使用程序_第3部分:SCA应用程序的工作负载平衡的WebSphere MQ客户端连接「终于解决」本文提供了服务组件体系结构(SCA)代码示例,这些示例显示了应用程序如何创建到IBM®WebSphere®MQ队列管理器集群的工作负载平衡的连接。这些代码示例与本系列第2部分中提供的Java™EnterpriseEdition(JavaEE)代码示例相似,并且它们使用相同的WebSphereMQ沙箱环境。本文还向您展示了如何将示例应用程序部署到IBMBusinessProcess…

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.MQSCGateway2.MQSC

crtmqm GATEWAY1crtmqm GATEWAY2strmqm GATEWAY1strmqm GATEWAY2runmqsc GATEWAY1 < Gateway1.MQSCrunmqsc GATEWAY2 < Gateway2.MQSC

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

本文附带的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使用程序

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477