博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 WebSphere Process Server 中使用外部总线实现跨管理单元的 JMS 消息传递(二)
阅读量:2492 次
发布时间:2019-05-11

本文共 6401 字,大约阅读时间需要 21 分钟。

 

在文章的第一部分我们介绍了如何开发部署运行于同一管理单元的 JMS 客户端(Client)和 JMS 服务端(Service)应用程序并进行 JMS 消息通信。文章的第二部分,将继续向您介绍开发部署跨管理单元的 JMS 客户端(Client)和 JMS 服务端(Service)应用程序,使您通过对比理解如何在 WPS 中通过外部总线实现跨管理单元的 JMS 消息传递。

下面我们要将 JMS 客户端(Client)应用程序部署到另一个管理单元中调用 JMS 服务端(Service)应用程序。通过 JMS 传递消息时需要借助 SIBus 上的目标(Destination)来储存消息,JMS 的客户端(Client)只能从本地 SIBus 上的目标(Destination)中接收消息。在本示例中,JMS 客户端(Client)对 JMS 服务端(Service)的调用是双向的,JMS 客户端(Client)需要将消息通过外部总线发送到 JMS 服务端(Service)所在管理单元的 SIBus 上的本地目标(Destination)中,而 JMS 服务端(Service)也必须通过外部总线将返回的 JMS 消息发送到 JMS 客户端(Client)所在管理单元的 SIBus 上的本地目标(Destination)中。因此我们需要分别在两个管理单元中建立外部总线来映射对方的 SIBus,并且需要分别在两个管理单元中建立外部目标(Foreign Destination)来映射对方的 SIBus 上的本地目标(Local Destination)。

1. 进入管理单元 1 的管理控制台(JMS 服务端应用程序将部署在此单元中),服务集成 > 总线 > SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus > 外部总线。注意:SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus 为此管理单元中的 SCA APPLICATION 总线的名称。

2. 点击新建按钮。(图1)

3. 在外部总线属性页面中将 SCA.APPLICATION.widCell.Bus 填入名称栏,点击下一步。(图2)

4. 选择默认的“直接,服务总线链接”,点击下一步。(图3)

5. 用 wid 和 wid 分别作为入站用户标识和出站用户标识。注意:此值应该根据管理单元 2 中的 SCA APPLICATION 总线(SCA.APPLICATION.widCell.Bus)的相应属性值来设置。点击下一步。(图4)

6. 点击完成,并保存。(图5)

7. 此时我们已经在管理单元 1 中创建好了表示管理单元 2 中 SCA APPLICATION 总线(SCA.APPLICATION.widCell.Bus)的外部总线。(图6)

在管理单元2上创建外部总线

1. 进入管理单元 2 的管理控制台(JMS 客户端应用程序将部署在此单元中), 服务集成 > 总线 > SCA.APPLICATION.widCell.Bus > 外部总线,注意:SCA.APPLICATION.widCell.Bus 为此管理单元中的 SCA APPLICATION 总线的名称。

2.点击新建按钮。(图7)

3. 在外部总线属性页面中将 SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus 填入名称栏,点击下一步。(图8)

4. 选择默认的“直接,服务总线链接”,点击下一步。(图9)

5. 用 SCA 和 SCA 分别作为入站用户标识和出站用户标识。注意:此值应该根据管理单元 1 中的 SCA APPLICATION 总线(SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus)的相应属性值来设置。点击下一步。(图10)

6. 点击完成,并保存。(图11)

7. 此时我们已经在管理单元2中创建好了表示管理单元 1 中 SCA APPLICATION 总线(SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus)的外部总线。(图12)

在管理单元 2 上创建外部目标(Foreign Destination)指向在管理单元 1 上的本地目标(Local Destination)

1. 进入管理单元 2 的管理控制台(JMS 客户端应用程序将部署在此单元中), 服务集成 > 总线 > SCA.APPLICATION.widCell.Bus > 目标,注意:SCA.APPLICATION.widCell.Bus 为此管理单元中的 SCA APPLICATION 总线的名称。

2. 点击新建按钮。(图13)

3. 选择外部,点击下一步。(图14)

4. 在标识栏中填入 JMSExportApplication.Process1Export_RECEIVE_D_SIB(管理单元1中的本地 SIBus 目标),并选择总线 SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus(之前建立的外部总线),点击下一步。(图15)

5. 点击完成并保存。(图16)

6. 此时外部目标(JMSExportApplication.Process1Export_RECEIVE_D_SIB)已经建好了, 它将指向管理单元1中的本地 SIBus 目标(JMSExportApplication.Process1Export_RECEIVE_D_SIB)。(图17)

在管理单元2上利用已经创建的外部 Destination 创建本地 JMS 队列(Queue)

1. 进入管理单元 2 的管理控制台(JMS 客户端应用程序将部署在此单元中), 资源 > JMS 提供程序 > 缺省消息传递提供程序 > JMS 队列。

2. 点击新建按钮。(图18)

3. 在名称栏中填入 Process1Export_RECEIVE_D,在 JNDI 名称中填入 JMSExportApplication/Process1Export_RECEIVE_D,选择队列名 JMSExportApplication.Process1Export_RECEIVE_D_SIB(前面创建的外部目标),选择总线名 SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus(前面创建的外部总线),点击确定并保存。(图19)

4. 此时用于向管理单元 2 传送消息的 JMS Queue 在管理单元 1 中创建完成。(图20)

在管理单元 1 上创建外部目标(Foreign Destination)指向在管理单元 2 上的本地目标(Local Destination)

1. 进入管理单元 1 的管理控制台(JMS 服务端应用程序将部署在此单元中), 服务集成 > 总线 > SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus > 目标,注意:SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus 为此管理单元中的 SCA APPLICATION 总线的名称。

2. 点击新建按钮。(图21)

3. 选择外部,点击下一步。(图22)

4. 在标识栏中填入 JMSImportApplication.Import1_RECEIVE_D_SIB(管理单元 2 中的本地 SIBus 目标),并选择总线 SCA.APPLICATION.widCell.Bus(之前建立的外部总线),点击下一步。(图23)

5. 点击完成并保存。(图24)

6. 此时外部目标(JMSImportApplication.Import1_RECEIVE_D_SIB)已经建好了,它将指向管理单元 2 中的本地SIBus 目标(JMSImportApplication.Import1_RECEIVE_D_SIB)。(图25)

在管理单元 1 上利用已经创建的外部目标(Foreign Destination)创建 JMS 本地 Queue

1. 进入管理单元 1 的管理控制台(JMS 服务端应用程序将部署在此单元中), 资源 > JMS 提供程序 > 缺省消息传递提供程序 > JMS 队列。

2. 点击新建按钮。(图26)

3. 在名称栏中填入 Process1Import_RECEIVE_D,在 JNDI 名称中填入 JMSImportApplication/Import1_RECEIVE_D,选择队列名 JMSImportApplication.Import1_RECEIVE_D_SIB(前面创建的外部目标),选择总线名 SCA.APPLICATION.widCell.Bus(前面创建的外部总线),点击确定并保存。(图27)

4. 此时用于向管理单元 2 传送消息的 JMS Queue 在管理单元 1 中创建完成。(图28)

为管理单元 1 创建服务集成总线链接

1. 进入管理单元 1 的管理控制台(JMS 服务端应用程序将部署在此单元中), 服务集成 > 总线 > SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus > 消息传递引擎 > IBM-gmNode02.server1-SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus > 服务集成总线链接。注意:SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus为此控制单元上的 SCA APPLICATION 总线,IBM-gmNode02.server1-SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus 为该总线上的消息引擎(Message Engine)。

2. 点击新建按钮。(图29)

3. 输入名称 AppSysLink,外部总线名称 SCA.APPLICATION.widCell.Bus,远程消息传递引擎名称 widNode.server1-SCA.APPLICATION.widCell.Bus,引导程序端点9.186.116.119:7276(根据引导程序所在的服务器的IP地址和端口号填入)。(图30)

4. 点击确定按钮并保存。(图31)

5. 重启服务器(注意应该与在下文创建完成服务集成总线链接的管理单元 2 同时重启)。(图32)

为管理单元 2 创建服务集成总线链接

1. 进入管理单元 2 的管理控制台(JMS 客户端应用程序将部署在此单元中), 服务集成 > 总线 > SCA.APPLICATION.widCell.Bus > 消息传递引擎 > widNode.server1-SCA.APPLICATION.widCell.Bus > 服务集成总线链接。注意:SCA.APPLICATION.widCell.Bus 为此控制单元上的 SCA APPLICATION 总线,widNode.server1-SCA.APPLICATION.widCell.Bus 为该总线上的消息引擎(Message Engine)。

2. 点击新建按钮。(图33)

3. 输入名称 AppSysLink,注意此名称必须与管理单元 2 中创建的服务集成总线链接的名称相同,外部总线名称 SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus,远程消息传递引擎名称 IBM-gmNode02.server1-SCA.APPLICATION.IBM-5B2112E27FFNode04Cell.Bus,引导程序端点 9.186.116.119:7276(根据引导程序所在的服务器的 IP 地址和端口号填入)。(图34)

4. 点击确定按钮并保存。(图35)

5. 重启服务器(注意管理单元 1 必须同时重启)。(图36)

修改 JMS 服务端应用程序

1. 双击 Assembly Diagram(JMSExportApplication > Assembly Diagram)。

2. 点击 Process1Export, Properties > End-point coufiguration >JMS Destinations > Send Destination Properties。(图37)

3. 点击 Specify properties for configuring new messaging provider resource,在 JNDI Lookup Name 栏中填入 JMSImportApplication/Import1_RECEIVE_D(在前面已创建)。(图38)

4. 保存。

修改 JMS 客户端应用程序

1. 双击 Assembly Diagram(JMSImportApplication > Assembly Diagram)。

2. 点击 Import1, Properties > End-point coufiguration >JMS Destinations > Send Destination Properties。(图39)

3. 点击 Specify properties for configuring new messaging provider resource, 在 JNDI Lookup Name 栏中填入 JMSExportApplication/Process1Export_RECEIVE_D(在前面已创建)。(图40)

4. 保存。

测试

1.通过 WID 部署 JMS 服务端(Service)应用程序到管理单元 1,并启动。(图41)

2. 部署 JMS 客户端(Client)应用程序到管理单元 2,并启动。(图42)

3. 展开 JMSImportApplication module, click Assembly Diagram 进入 Assembly Diagram 视图点击模块 Import1 Test Component。(图43)

4. 在 Test Component 页面中填入 Value 值 gaoming。点击 Continue 按钮。(图44)

5. 可以看到返回值为 Hello gaoming。 由此可见,管理单元 2 收到了返回的消息。这正是我们期待的结果。(图45)

6. 查看管理单元 1 中的 SystemOut.log 文件,有如下输出:

>>>> Input1 ---&gtgaoming

>>>> Output1 ---&gtHello gaoming

由此可见,通过配置外部总线,我们实现了跨管理单元的 JMS 客户端(Client)和 JMS 服务端(Service)应用程序通过 WPS 缺省的消息传递提供程序来传递 JMS 消息。

当使用 WPS 所提供的缺省消息传递时,可以通过配置外部总线实现跨管理单元的 JMS 消息传递。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-480105/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14789789/viewspace-480105/

你可能感兴趣的文章
FFmpeg 源码分析 - avcodec_send_packet 和 avcodec_receive_frame
查看>>
FFmpeg 新旧版本编码 API 的区别
查看>>
RecyclerView 源码深入解析——绘制流程、缓存机制、动画等
查看>>
Android 面试题整理总结(一)Java 基础
查看>>
Android 面试题整理总结(二)Java 集合
查看>>
学习笔记_vnpy实战培训day02
查看>>
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day06
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>
股票网格交易策略
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
ubuntu终端一次多条命令方法和区别
查看>>