在 WebSphere Process Server 中使用外部总线实现跨管理单元的 JMS 消息传递(二)

 

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

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

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


图1. 新建外部总线

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


图2. 新建外部总线

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


图3. 新建外部总线

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


图4. 新建外部总线

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


图5. 新建外部总线

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


图6. 外部总线页面

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

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

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


图7. 外部总线页面

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


图8. 新建外部总线

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


图9. 新建外部总线

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


图10. 新建外部总线

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


图11. 新建外部总线

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


图12. 外部总线页面

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

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

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


图13. 创建外部目标(Foreign Destination)

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


图14. 创建外部目标(Foreign Destination)

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


图15. 创建外部目标(Foreign Destination)

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


图16. 创建外部目标(Foreign Destination)

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


图17. 外部目标(Foreign Destination)创建完成

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

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

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


图18. 新建 JMS 队列(Queue)

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


图19. 新建 JMS 队列(Queue)

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


图20. 创建 JMS 队列(Queue)完成

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

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

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


图21. 创建外部目标(Foreign Destination)

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


图22. 创建外部目标(Foreign Destination)

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


图23. 创建外部目标(Foreign Destination)

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


图24. 创建外部目标(Foreign Destination)

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


图25. 创建外部目标(Foreign Destination)完成

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

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

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


图26. 新建 JMS 队列(Queue)

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


图27. 新建 JMS 队列(Queue)

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


图28. 新建 JMS 队列(Queue)

为管理单元 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)


图29. 新建服务集成总线连接

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


图30. 新建服务集成总线连接

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


图31. 新建服务集成总线连接

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


图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)


图33. 新建服务集成总线连接

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


图34. 新建服务集成总线连接

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


图35. 新建服务集成总线连接

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


图36. 新建服务集成总线连接已经启动

修改 JMS 服务端应用程序

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

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


图37. 修改 JMS Binding 的属性

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


图38. 修改 JMS Binding 的属性

4. 保存。

修改 JMS 客户端应用程序

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

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


图39. 修改 JMS Binding 的属性

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


图40. 修改 JMS Binding 的属性性

4. 保存。

测试

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


图41. JMS 服务端应用程序已经启动性

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


图42. JMS 客户端应用程序已经启动

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


图43. 点击 Test Component

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


图44. 输入测试数据

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


图45. JMS 客户端收到返回的结果

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值