跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

这是您第一次登陆到 developerWorks,已经自动为您创建了您的概要文件。 选择您概要文件中可以公开的信息的信息(如姓名、国家/地区,以及公司),这些信息同时也会与您所发布的内容相关联。 您可以随时更新您的 IBM 账号。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

集成 WebSphere Message Broker 与 Apache ActiveMQ

Chary Eswarachary, 资深集成架构师,IBM Software Services for WebSphere, IBM
Chary Eswarachary 的照片
Lingachary Eswarachary 是美国 IBM Software Services for WebSphere 的一名资深 WebSphere 集成架构师。他在 IT 行业拥有 17 年的从业经验,其中 10 年都在 IBM Software Group 中研究连通空间 (connectivity space)。他负责构造、设计和实现 WebSphere 解决方案,使用 Smart SOA 方法为端到端软件开发周期提供支持。他擅长的领域包括 WebSphere DataPower、WebSphere Message Broker、WebSphere MQ 和 WebSphere Transformation Extender。他是一名 IBM 红皮书作者和经过认证的 SOA 助理,曾获得过多项 IBM 产品认证。他帮助开展了 IBM 产品认证计划,执行有关 WebSphere 和相关产品的培训和研讨会。您可以通过 lingeswa@us.ibm.com 联系 Lingachary。

简介: 本文将介绍如何配置 WebSphere Message Broker JMS 节点,使它能够以 JMS 提供程序的身份与开源的 Apache ActiveMQ 消息服务器进行通信。

发布日期: 2013 年 1 月 14 日
级别: 中级 原创语言: 英文
访问情况 : 1836 次浏览
评论: 


简介

Apache ActiveMQ(以下简称 ActiveMQ)是最流行、最强大的开源消息代理和消息服务器。它支持 JMS 1.1 和 J2EE 1.4。因为许多企业正在将开源技术集成到其消息基础架构中,所以本文将使用一个示例消息来展示如何配置 IBM® WebSphere® Message Broker(以下简称 Message Broker),使它能够以 JMS 提供程序的身份与 Apache ActiveMQ 集成。

为了展示 Message Broker 与 ActiveMQ 的集成,本文将使用集成即服务 (IaaS) 提供程序 Meddius,它使用 ActiveMQ 通过 JMS 提供了一个 HL7 解决方案。在下图中,ActiveMQ 通过 JMS 从 Meddius 接收 HL7 消息,将它们转发给 Message Broker(它使用自己的 Compute 节点来处理它们),然后将 HL7 事务写入一个数据库表中。


图 1
图 1

配置 ActiveMQ

  1. Apache ActiveMQ 网站 将 ActiveMQ V5.7 下载并安装到一台安装了 Message Broker Toolkit 的 Microsoft Windows 机器上。
  2. 完成安装之后,启动 ActiveMQ 消息代理:运行批处理文件 apache-activemq-5.6.0\bin\activemq.bat。直到在控制台输出中看到以下消息:

    图 2
    图 2

  3. 打开一个浏览器窗口,然后在 URL 框中输入 http://localhost:8161/admin,以便打开 ActiveMQ 管理控制台:

    图 3
    图 3

  4. 单击 Queues 选项卡并创建两个队列:IN.Q 和d OUT.Q

    图 4
    图 4

  5. 创建一个包含如下所示内容的 JNDI 属性文件,将它保存为 jndi.properties
    java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
    java.naming.provider.url = vm://localhost
    connectionFactoryNames = 
        connectionFactory, queueConnectionFactory, topicConnectionFactory
    queue.jmsINQ = IN.Q
    queue.jmsOUTQ = OUT.Q
        

    图 5

    jmsINQjmsOUTQ 分别对应于物理队列 IN.QOUT.Q 的 JMS 目标。

  6. 也可使用一个名为 ConnectionFactory 的预定义连接工厂,为实际队列名称添加 dynamicQueues/ 作为前缀,以避免创建 jndi.properties 文件。

配置 WebSphere Message Broker

  1. 将 ActiveMQ JAR 文件 activemq-all-5.6.0.jar 复制到 Message Broker 共享类目录。
  2. 将上面创建的 jndi.properties 文件复制到 Message Broker 类目录。

配置消息流

  1. 启动 Message Broker Toolkit 并创建一个消息流,如下所示:

    图 6
    图 6

  2. 这个消息流从 jmsINQ 读取消息,处理它们,然后将 HL7 事务写入一个数据库表中。
  3. 配置 JMS Input 节点的 JMS 连接参数,如下所示:

    图 7
    图 7

    也可定义一个 JMSProvider 可配置服务,将该节点配置为使用该可配置服务。如果选择创建动态队列而不使用 jndi.properties 文件,那么可以将连接工厂名配置为 ConnectionFactory

  4. 配置 JMS Input 节点的 Basic 选项卡,如下所示。如果选择创建动态队列,那么可以将源队列配置为 dynamicQueues/IN.Q

    图 8
    图 8

  5. 将处理节点添加到 Compute 节点中,然后创建 SQL 查询,将已处理的事务写入 Database 节点中的某个数据库表中。
  6. 编译消息流并创建一个 BAR 文件。
  7. 如果代理正在运行,则停止它。
  8. 启动代理。
  9. 使用您创建的 BAR 文件来部署消息流。
  10. 检查代理日志文件,确保已建立 JMS 与 ActiveMQ 的连接。

测试消息流

  1. 在 ActiveMQ 管理控制台上,单击 Send 选项卡:

    图 9
    图 9

  2. 将一个示例 HL7 消息放在 IN.Q 上:

    图 10
    图 10

    测试消息正文的详细内容如下所示:
    MSH|^~\&|EPIC|EPICADT|SMS|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5|
    PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET
     AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
    NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC|||||||||||||||||||||||||||
    PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^||||||||||
    ||2688684|||||||||||||||||||||||||199912271408||||||002376853
        

  3. 检查数据库,确保 HL7 事务已经写入数据库表中。

结束语

本文介绍了如何配置 WebSphere Message Broker JMS 节点,使它能够作为一个 JMS 提供程序与开源的 Apache ActiveMQ 消息服务器进行通信。您可以扩展上述解决方案,添加一个 JMSOutput 节点来实现请求-响应场景。


参考资料

学习

讨论

关于作者

Chary Eswarachary 的照片

Lingachary Eswarachary 是美国 IBM Software Services for WebSphere 的一名资深 WebSphere 集成架构师。他在 IT 行业拥有 17 年的从业经验,其中 10 年都在 IBM Software Group 中研究连通空间 (connectivity space)。他负责构造、设计和实现 WebSphere 解决方案,使用 Smart SOA 方法为端到端软件开发周期提供支持。他擅长的领域包括 WebSphere DataPower、WebSphere Message Broker、WebSphere MQ 和 WebSphere Transformation Extender。他是一名 IBM 红皮书作者和经过认证的 SOA 助理,曾获得过多项 IBM 产品认证。他帮助开展了 IBM 产品认证计划,执行有关 WebSphere 和相关产品的培训和研讨会。您可以通过 lingeswa@us.ibm.com 联系 Lingachary。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=854847
ArticleTitle=集成 WebSphere Message Broker 与 Apache ActiveMQ
publish-date=01142013