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 事务写入一个数据库表中。
- 从 Apache ActiveMQ 网站 将 ActiveMQ V5.7 下载并安装到一台安装了 Message Broker Toolkit 的 Microsoft Windows 机器上。
- 完成安装之后,启动 ActiveMQ 消息代理:运行批处理文件
apache-activemq-5.6.0\bin\activemq.bat
。直到在控制台输出中看到以下消息:
图 2
- 打开一个浏览器窗口,然后在 URL 框中输入
http://localhost:8161/admin
,以便打开 ActiveMQ 管理控制台:
图 3
- 单击 Queues 选项卡并创建两个队列:
IN.Q
和dOUT.Q
:
图 4
- 创建一个包含如下所示内容的 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
jmsINQ
和jmsOUTQ
分别对应于物理队列IN.Q
和OUT.Q
的 JMS 目标。 - 也可使用一个名为
ConnectionFactory
的预定义连接工厂,为实际队列名称添加dynamicQueues/
作为前缀,以避免创建 jndi.properties 文件。
- 将 ActiveMQ JAR 文件
activemq-all-5.6.0.jar
复制到 Message Broker 共享类目录。 - 将上面创建的
jndi.properties
文件复制到 Message Broker 类目录。
- 启动 Message Broker Toolkit 并创建一个消息流,如下所示:
图 6
- 这个消息流从 jmsINQ 读取消息,处理它们,然后将 HL7 事务写入一个数据库表中。
- 配置 JMS Input 节点的 JMS 连接参数,如下所示:
图 7也可定义一个 JMSProvider 可配置服务,将该节点配置为使用该可配置服务。如果选择创建动态队列而不使用 jndi.properties 文件,那么可以将连接工厂名配置为
ConnectionFactory
。 - 配置 JMS Input 节点的 Basic 选项卡,如下所示。如果选择创建动态队列,那么可以将源队列配置为
dynamicQueues/IN.Q
。
图 8
- 将处理节点添加到 Compute 节点中,然后创建 SQL 查询,将已处理的事务写入 Database 节点中的某个数据库表中。
- 编译消息流并创建一个 BAR 文件。
- 如果代理正在运行,则停止它。
- 启动代理。
- 使用您创建的 BAR 文件来部署消息流。
- 检查代理日志文件,确保已建立 JMS 与 ActiveMQ 的连接。
- 在 ActiveMQ 管理控制台上,单击 Send 选项卡:
图 9
- 将一个示例 HL7 消息放在
IN.Q
上:
图 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
- 检查数据库,确保 HL7 事务已经写入数据库表中。
本文介绍了如何配置 WebSphere Message Broker JMS 节点,使它能够作为一个 JMS 提供程序与开源的 Apache ActiveMQ 消息服务器进行通信。您可以扩展上述解决方案,添加一个 JMSOutput 节点来实现请求-响应场景。
相关推荐
Websphere Message Broker配置总结
1.2. IBM WEBSPHERE MESSAGE BROKER 技术方案 1 1.2.1. WebSphere Message Broker的特性亮点 2 1.2.2. WebSphere Message Broker的价值 3 1.3. 选择IBM的理由 3 1.3.1. WebSphere Message Broker解决方案的优势 3 ...
精通WebSphere Message Broker,清晰版本
Websphere Message Broker实践,WebSphere MQ Java编程,Message Broker 计时器节点编程模式,MessageBroker TCPIP通信协议,wmb关于ws服务的引用,WMB连接oracle数据库实践,全部组件
精通Websphere Message Broker,最主要的功能是消息选路、消息传送、消息扩展和发布/订阅。显然,这些功能使WebSphere Message Broker成为实现ESB业务集成的首选
IBM WebSphere message broker 命令详解
WebSphere Message Broker之WebService连接
精通WebSphere Message Broker》-陈宇翔-源代码。。。。
WebSphere Message Broker 开发和部署最佳实践
精通Websphere Message Broker.pdf(陈宇翔)高清
Websphere Message Broker MB6.0初学者教程,适合初学者的教程
Websphere Message Broker 7.0 新功能介绍及行业应用案例
目 录 1 一、 WMB安装 2 三、 WMB建消息流流程 5 四、MB节点使用 6 ...(二)数据库节点 6 (三)FITER节点 10 (四)RouteToLabel节点的使用 11 (五) FlowOrder节点 12 (六) throw,thycatch,trace节点的使用...
Websphere message broker 培训资料 WMB 培训资料 齐全的培训资料
IBM websphere message broker ESQL文档
WebSphere Message Broker Installation Guide
Websphere Message Broker 入门经典必备实例 一共3个实例,详细的PDF实例,
WebSphere Message Broker Basics_v6.pdf
IBM WebSphere Message Broker Toolkit 7.0 相关书籍,MB的相关书籍
IBM 红宝书 WebSphere Message Broker Basics PDF, 英文原版。 This IBM Redbook is a guide to using WebSphere Message Broker V6.0. Guidance is provided for developing basic message flows and message ...