`
wangemperor
  • 浏览: 39957 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

集成 WebSphere Message Broker 与 Apache ActiveMQ

阅读更多

简介

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 节点来实现请求-响应场景。

分享到:
评论

相关推荐

    2020 MQP 中文单页.rar

    MQP可能是IBM的WebSphere Message Broker、Apache ActiveMQ或者其他类似的消息队列产品。在这里,"MQP"很可能是某个特定的产品或项目,而2020年的中文单页可能是该产品或项目的宣传材料、用户指南、技术概述或者更新...

    Active MQ in action 教程

    除了直接使用Java代码,ActiveMQ还可以与其他应用服务器集成,如JBoss、WebSphere等,以实现更复杂的企业级应用。书中将介绍如何在这些应用服务器中部署和使用ActiveMQ。 #### 其他语言的应用 虽然本书主要聚焦于...

    Java Message Service 基础教程

    在实际开发中,我们通常会使用JMS供应商提供的实现,如Apache ActiveMQ、IBM WebSphere MQ或Oracle Advanced Queuing等。每个供应商可能会提供额外的功能和特定的配置选项。 了解了JMS的基本概念和组件后,开发者...

    java 消息服务(第二版)源码

    1. **JMS_2ed_spring_activemq.zip**:这可能包含使用Spring框架与Apache ActiveMQ集成的示例代码。ActiveMQ是流行的开源JMS实现,Spring框架则简化了在Java应用中配置和使用JMS的过程。 2. **JMS_2ed_spring_wmq....

    Java+Message+Service+JMS+java消息服务

    一些知名的JMS实现包括Apache ActiveMQ、IBM WebSphere MQ、RabbitMQ以及Amazon Simple Queue Service (SQS)和Amazon Simple Notification Service (SNS)等。这些实现提供了JMS API的兼容性,同时也引入了自己的特性...

    JMS.rar_jms

    消息代理可以是IBM的WebSphere MQ、Apache ActiveMQ、RabbitMQ等。 5. **连接工厂(ConnectionFactory)**:它是创建JMS连接的工厂类,提供了一种方式来配置JMS提供者的连接参数,如URL、用户名、密码等。 6. **...

    jms

    由于标签包含了“源码”和“工具”,这篇博文可能深入解析了JMS的实现细节,或者介绍了与JMS相关的开发工具,如消息代理(message broker)如Apache ActiveMQ、RabbitMQ等,或者是用于测试和调试JMS的工具。...

    jms双系统应用

    而“工具”标签可能指的是博客中提到了一些辅助开发和调试JMS应用的工具,如消息中间件(如Apache ActiveMQ、RabbitMQ或IBM WebSphere MQ)或者是集成开发环境(IDE)的插件等。 在压缩包文件“src”中,通常会包含...

    JMS教程

    6. 消息代理(Message Broker)或消息服务器:存储、路由和管理消息的软件,例如Apache ActiveMQ、IBM WebSphere MQ等。 三、JMS消息模型 1. 点对点模型(Queue):消息从一个生产者发送到队列,一个消费者接收。...

    JMS JAR

    在实际开发中,开发者需要选择一个JMS提供者,如Apache ActiveMQ、IBM WebSphere MQ、RabbitMQ等,这些提供者提供了JMS的具体实现,并且通常会提供一个包含JMS API的JAR文件供开发者使用。 使用JMS时,需要注意以下...

    JMS简明教程--简体中文

    实践中,你可以使用Apache ActiveMQ、RabbitMQ或IBM WebSphere MQ等开源或商业JMS提供者来搭建消息传递系统。通过创建生产者、消费者,以及配置队列或主题,实现应用程序间的通信。 总结,JMS是Java平台中用于构建...

    JMS大合集JMS大合集

    常见的JMS消息代理有Apache ActiveMQ、IBM WebSphere MQ和RabbitMQ等。 6. **持久化**:JMS提供消息的持久化存储,即使在消息代理宕机后,也能保证消息不丢失。这增强了系统的健壮性和可靠性。 7. **事务支持**:...

    JMS学习教程概述

    - **消息代理(Message Broker)或消息中间件**: 这是连接生产者和消费者的中介,负责存储、路由和传递消息。 ### 2. JMS API JMS API主要包含以下接口和类: - **ConnectionFactory**: 用于创建Connection实例,...

    【JAVA、JMS发送端所需要用到的jar包】

    3. **消息提供者实现**:每个JMS消息提供者(如ActiveMQ、Apache Qpid、IBM WebSphere MQ、Apache Kafka等)都有自己的实现库,用于实际与消息队列交互。例如,如果你使用ActiveMQ,你需要引入`activemq-client.jar`...

    JMS规范教程

    4. **消息提供者(Message Provider)**:实现JMS规范的服务提供商,如Apache ActiveMQ、IBM WebSphere MQ等。 5. **消息生产者(Message Producer)**:负责创建和发送消息到消息队列或主题的组件。 6. **消息...

    .net and j2ee application interoperability

    5. **Message Queuing (MQ) Systems**: 利用消息队列,如IBM WebSphere MQ或Apache ActiveMQ,可以实现异步通信,允许.NET和J2EE应用在无需直接交互的情况下交换信息。 6. **RESTful APIs**: 使用Representational ...

    Lab2-JMS-code_jms_brainhht_

    常见的消息代理有Apache ActiveMQ、IBM WebSphere MQ、RabbitMQ等。 5. **目的地(Destination)**:消息被发送到和从哪里接收的地方,分为两种类型:队列(Queue)和主题(Topic)。队列遵循“一对一”模型,每个...

    [JAVA消息服务].(美)Mark.Richards,.Richard.Monson-Haefel,.David.A.Chappell.文字版

    目前市面上有许多JMS的实现框架,如Apache ActiveMQ、IBM WebSphere MQ等。这些框架提供了丰富的特性和高级功能,例如集群、持久化、安全性等,可以帮助开发者构建高性能、高可用性的消息应用。 ### 总结 Java消息...

    MQ的一些资料

    3. **ActiveMQ**:Apache的开源MQ项目,提供JMS(Java Message Service)支持。 4. **IBM WebSphere MQ**:商业MQ解决方案,提供了高度稳定性和安全性。 5. **RocketMQ**:阿里云开源的分布式消息中间件,具有高吞吐...

    JMS规范和简明教程

    常见的JMS提供商有ActiveMQ、RabbitMQ、IBM WebSphere MQ、Apache Qpid等,它们实现了JMS规范,提供了具体的API和工具来操作消息。 通过深入理解和掌握JMS规范,开发者可以在分布式系统中构建健壮、可靠的通信机制...

Global site tag (gtag.js) - Google Analytics