快速业务通道

如何获取消息?使用JMS技术作为数据复制的解决方案 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
但是,配置的确切方法根据不同的供应商而有所不同。

设置

我们创建的体系结构和系统具有通用性且很强大。但是,对于一些移动部件,必须使用正确的方式配置并钩连它们。以下内容是有关将 MQSeries 成功地设置为 JMS 服务器的概述、一些潜在缺陷和实际的指示信息。

对于 MQSeries,首先设置 JNDI 服务器来检索特定于实现的设置,在这种情况下是 JMS 连接工厂(JMS Connection Factory)。有许多不同方法来实现这个操作,但适宜的通用选项是轻量级目录访问协议(LDAP)服务器。我们选择使用 Qualcomm SLAPD。一旦安装好并运行该服务器,就可以用 MQSeries 管理工具(JMSAdmin.bat)来设置该服务器并将其作为 MQ 对象信息库来使用。同时,在设置期间,要特别注意在 IBM MQSeries 之上设置 JMS 的 IBM 文档,这很重要。这个过程涉及创建一些队列和其它对象,这些队列和对象是特定于 JMS 使用并且不属于标准 MQSeries 安装的。

完成 JNDI/LDAP 和 JMS 服务器的设置后,就可以准备配置客户机了。第一步是理解 JMS 如何与 IBM 的标准 MQSeries 实现交互。MQSeries 的 Java 客户机能以两种模式之一进行交互:客户机和绑定模式。只能通过 Java applet 来使用客户机模式,而绑定模式取决于客户机上的 DLL 或者对象库。因为实现的特性,当使用用于 JMS 连接信息的 LDAP 服务器时,只能使用绑定模式。(不清楚为什么有这个限制,但它确实存在。)因此,将用户登录和密码存储在一个全局位置(com.ibm.mq.MQEnvironment.class)而不是在连接时传递它们。要解决这些供应商问题,我们创建了标准 JmsProvider 类(称为 MQSeriesProvider)的子类。这个类将完成的唯一操作是覆盖如何创建连接。不象清单 1 中那样

newQueueConnection = getConnectionFactory().createQueueConnection(getUserName(),getPassword));

进行调用,我们必须调用

newQueueConnection = getConnectionFactory().createQueueConnection();

最后,您需要将特定于 JMS 的元素(如队列、队列管理器、队列工厂等等)提供给客户机。现在,使用 LDAP 和 JNDI 的原因就变得很明显:我们使用 LDAP 服务器来存储这些元素并使用外部文件保存那些 LDAP 对象的键。LDAP 服务器可以作为 JNDI 服务器并通过返回存储的对象来响应名称查询。这就是清单 2 中代码的工作原理。JMS 元素的名称可从类的静态变量(对于缺省名称)或者外部文件(使用非缺省的其它名称)中获取。简而言之,向 LDAP 服务器请求键(我们正讨论的)中存储的对象,并返回我们感兴趣的 JMS 对象(在这种情况下)。

我们基于 JMS 的解决方案通过使用现有的组件更方便地实现统一的、跨平台和交叉供应商的配置环境。现在我们的代码已尽可能地成为独立于特定于平台和特定于供应商的设置。

如何获取消息?使用JMS技术作为数据复制的解决方案(4)

时间:2011-01-25 IBM Daniel Drasin

应用程序

应用程序中有两个关键组件:发送器和接收器。发送器启动一个后台程序,它在目录中轮询需要存档的文件,而接收器只是等待将要传递的 JMS 消息,然后将该消息中包含的文件存档。JMS API 使我们几乎无需关注正使用的特定 JMS 实现就可以定义这些组件。

发送器由三个主要部件组成:

JMSProvider,用于创建连接

ConnectionPool,用于获取现有的空闲连接(我们称之为 JMSConnection)

轮询程序,监视需要传送的文件。

在启动时,使用 JMSProvider 来创建一些到 JMS 服务器的准备就绪的连接。这些连接放置在池中,然后启动轮询程序。当轮询程序检测到需要传送文件时,它就创建一个独立线程来处理这个文件。(可以通过派生(forking),创建一个独立的线程来创建消息和进行传送操作,描述该过程非常简单。但在实际应用中,常常

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号