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 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客户端连接相关推荐

  1. 11无监听程序_腾讯开心鼠英语 小程序实践与总结

    腾讯开心鼠英语 团队中有很多小程序的项目,且后续还会很多小程序的开发和迭代规划,因此我们团队是小程序的重度使用者.在小程序的开发中,团队积累了一些技术和经验,也遇到了一些困难和挑战,还踩了很多坑,因此 ...

  2. plsql developer无监听程序_腾讯开心鼠英语 小程序实践与总结

    腾讯开心鼠英语 团队中有很多小程序的项目,且后续还会很多小程序的开发和迭代规划,因此我们团队是小程序的重度使用者.在小程序的开发中,团队积累了一些技术和经验,也遇到了一些困难和挑战,还踩了很多坑,因此 ...

  3. 渐进式web应用程序_如何使用渐进式Web应用程序更快,更便宜地构建新应用程序...

    渐进式web应用程序 You need an app! The question is- which kind? 您需要一个应用程序! 问题是--哪种? For the last 8 years or ...

  4. 您没有权限来打开应用程序_苹果建议:除非应用程序无响应,否则不要滑动强制退出...

    紫金财经2月26日消息 今日,苹果公司发布的一条建议,成为了微博热搜的话题.苹果建议除非应用程序无响应,否则不要滑动强制退出. 苹果公司表示,滑动关闭iPhone的应用程序可能会缩短电池寿命,并使设备 ...

  5. 渐进式web应用程序_如何在渐进式Web应用程序中添加到主屏幕

    渐进式web应用程序 添加到主屏幕 (Add To Homescreen) Here the web app install banner is focused on web app, with th ...

  6. 一个完整的嵌入式程序_放下偏见,原来嵌入式程序员如此“妖娆”!

    感兴趣的小伙伴可以来我的Java交流群,可以获取免费的学习资料 828 697 593 对Java技术,架构技术感兴趣的同学,欢迎加群,一起学习,相互讨论. 竟然都看到最后了,给小编点个关注吧,小编还 ...

  7. javascript程序_使用JavaScript构建实时应用程序的5种方法

    javascript程序 There was a point in time where we didn't expect too much from web pages. Which reminds ...

  8. java编写应用程序_使用Java API编写应用程序

    java编写应用程序 总览 介绍 DB2JSON可用于DB2 Linux,Unix和Windows 10.5以及用于z / OS V3.1的IBM DB2 Accessories Suite与DB2 ...

  9. windows桌面应用程序_如何将Windows桌面应用程序转换为通用Windows应用程序

    windows桌面应用程序 With Windows 10's Anniversary Update, Microsoft is making it possible for developers t ...

  10. object picker 微信小程序_七夕地图导航微信小程序

    七夕期间,开发一款七夕微信小程序,地图导航是七夕小程序一种功能,今天单独开发一款纯七夕地图导航小程序,供大家娱乐,希望大家喜欢. 准备着手实现一个小程序,功能包括--获取用户当前位置的经纬度,在地图上 ...

最新文章

  1. Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(完)...
  2. 14岁上中科大、23岁博士毕业的袁岚峰,现在因“简单科普”上热搜,本人回应:科普和科研一样重要...
  3. 微信开发h5支付功能,配置单价和商品信息无法更新问题解决方法!
  4. 请使用C#的文件流来拷贝文件
  5. 表格存储Tablestore权威指南(持续更新)
  6. 写了个简单的pdo的封装类
  7. Bailian2701 Bailian3864 POJ NOI0105-39 与7无关的数【进制】
  8. 使用Connector / Python查询MySQL数据
  9. android 反编译及二次打包详细步骤
  10. 关于 签名验证失败 的问题
  11. UML建模工具2021年8-11月更新(共15款)
  12. 内存XMP是什么意思?有必要开吗?内存XMP模式的作用与开启教程
  13. spyder怎么执行html文件,spyder添加快捷键
  14. IE下使用VLC网页播放视频Demo
  15. 最新parity 以太坊客户端2.7.2稳定版配置参数说明
  16. jenkins 出现“Error 403 No valid crumb was included in the request ”的解决方案
  17. 分形图java_数字的美丽——分形图形
  18. 电脑格式化后文件还能恢复吗?好用方法分享
  19. 海外仓物流有哪些优缺点
  20. 记录一次在JavaWeb项目中,运行tomcat的时候,遇到XX程序包不存在的一系列排查问题。

热门文章

  1. matlab用插值法plot,Matlab插值法
  2. DWF是个什么格式,要怎么进行相应的格式转换?
  3. 数据采集与数据挖掘是什么?有什么区别?
  4. vue导出excel表格(详细教程)
  5. 服务器刷课源码,国开刷课
  6. 2020年美赛C题(数据分析题)O奖论文笔记 (1)
  7. opencv二值化详解
  8. 从根儿上解决Word中标题多级标题编号不联动问题
  9. eNSP 配置OSPF
  10. 如何利用matlab显示图像的方向矢量图