20.9.2. 创建 JMS 桥
介绍
JMS 桥消费源 JMS 队列或主题里的消息并发送到目标 JMS 队列或主题(通常位于不同的服务器上)。它可以用于桥接 任何 JMS 服务器间的消息,只要这些消息是兼容 JMS 1.1 的。源和目的 JMS 资源通过 JNDI 查找,用于 JNDI 查找的客户类必须捆绑在模块里。然后在 JMS 桥配置里声明模块名。
过程 20.2. 创建 JMS 桥
这个过程演示了如何配置 JMS 桥从 JBoss EAP 5.x 移植消息到 JBoss EAP 6 服务器。
在源 JMS 消息服务器上配置桥
请使用源服务器提供的说明配置 JMS 桥。关于如何在 JBoss EAP 5.x 上配置 JMS 桥的例子,请参考《JBoss EAP 6 移植指南》里的 Create a JMS Bridge 章节。配置目的 JBoss EAP 6 服务器上的 JMS 桥
在 JBoss EAP 6.1 以后的版本里,JMS 桥可以用于从任何兼容 JMS 1.1 的服务器上桥接消息。因为源和目标 JMS 资源是用 JNDI 进行查找的,源消息供应商或消息中介的 JNDI 查找类必须捆绑在 JBoss 模块里。下面的过程使用了虚拟的 'MyCustomMQ' 消息中介作为例子。- 为消息供应商创建 JBoss 模块。
- 在
EAP_HOME/modules/system/layers/base/下为新的模块创建一个目录结构。main/子目录将包含客户 JAR 和module.xml文件。下面是为消息供应商 MyCustomMQ 创建的一个目录结构示例:EAP_HOME/modules/system/layers/base/org/mycustommq/main/。 - 在
main/子目录里,创建一个包含消息供应商的模块定义的module.xml文件。下面是为消息供应商 MyCustomMQ 创建的module.xml示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从源资源复制消息供应商用于 JNDI 查找的的 JAR 到模块的
main/子目录。MyCustomMQ 模块的目录结构应该类似于:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 配置部署到 JBoss EAP 6 服务器的
messaging子系统的 JMS 桥。- 在开始之前,请先停止服务器并备份当前的服务器配置文件。如果是作为独立服务器运行,它是
EAP_HOME/standalone/configuration/standalone-full-ha.xml。如果是运行的受管域,请备份EAP_HOME/domain/configuration/domain.xml以及EAP_HOME/domain/configuration/host.xml。 - 在服务器配置文件里的
messaging子系统里添加jms-bridge元素。source和target元素提供的用于 JNDI 查找的 JMS 资源的名称。如果指定了user和password凭证,当创建 JMS 连接时它们会作为参数传入。下面是一个为消息供应商 MyCustomMQ 配置的jms-bridge元素例子:在上面的例子里,JNDI 属性是在Copy to Clipboard Copied! Toggle word wrap Toggle overflow source的context元素里定义的。如上面的target例子,如果忽略了context元素,JMS 资源将在本地实例里进行查找。