JMSConnectionFactoryProvider

文档中心 › 组件索引 › JMSConnectionFactoryProvider

JMSConnectionFactoryProvider Controller Service

类型全限定名:cn.org.acal.lynxus.jms.cf.JMSConnectionFactoryProvider

所属 Bundle:cn.org.acal.lynxus:lynxus-jms-processors-nar:2.11.8

描述

提供通用服务来创建特定于供应商的 javax.jms.ConnectionFactory 实现。 一旦成功配置该服务,就可以提供连接工厂服务。

标签

jmsmessagingintegrationqueuetopicpublishsubscribe

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
JMS Connection Factory Implementation ClassJMS ConnectionFactory 实现类的完全限定名称(例如 org.apache.activemq.ActiveMQConnectionFactory)。
支持表达式语言:是(仅使用环境/系统变量求值)
JMS Client Libraries包含要添加到类路径的附加资源(例如 JAR、配置文件等)的目录路径(定义为值的逗号分隔列表)。这些资源通常表示目标
支持表达式语言:是(仅使用环境/系统变量求值)
JMS Broker URI指向 JMS 消息代理网络位置的 URI。ActiveMQ 示例:'tcp://myhost:61616'。IBM MQ 示例:'myhost(1414)' 和 'myhost01(1414),myhost02(1414)'。
支持表达式语言:是(仅使用环境/系统变量求值)
JMS SSL Context Service控制器服务 API:
SSLContextService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
SSL 上下文服务用于为 TLS/SSL 连接提供客户端证书信息。

动态属性

动态属性允许用户自定义属性的名称与值。

名称值描述
Connection Factory 配置属性的名称。给定 Connection Factory 配置属性的值。按照 Java Beans 约定设置的属性,其中属性名从供应商特定的 ConnectionFactory 实现的 'set*' 方法派生。例如,'com.ibm.mq.jms.MQConnectionFactory.setChannel(String)' 表示 'channel' 属性,'com.ibm.mq.jms.MQConnectionFactory.setTransportType(int)' 表示 'transportType' 属性。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • JMSConnectionFactoryProviderDefinition (cn.org.acal.lynxus-lynxus-jms-cf-service-nar-2.11.8)

另请参阅

详细说明

JMSConnectionFactoryProvider

说明

该 Controller Service 作为通用工厂服务,提供厂商特定的 javax.jms.ConnectionFactory 实例。它允许用户配置厂商特定的属性, 并指向厂商提供的 JMS 客户端库的位置,以便能找到、加载、实例化 javax.jms.ConnectionFactory 的正确实现,并提供给依赖它的 Processor(参见 PublishJMS、ConsumeJMS)。

只要配置值可以通过 set 方法设置(详见最后一段),所有 JMS 厂商和 ConnectionFactory 实现都受支持。不过,对以下 JMS 厂商做了一些便利适配:

  • Apache ActiveMQ
  • IBM MQ
  • TIBCO EMS
  • Qpid JMS (AMQP 1.0)

该 Controller Service 只暴露一个所有实现都必需的强制静态配置 属性。其余配置属性要么是可选的,要么是厂商特定的。

强制配置属性为:

以下静态配置属性是可选的,但在许多情况下是必需的:

  • JMS Client Libraries - 要添加到 classpath 的附加资源(例如 JAR、配置文件等)所在目录的路径(定义为逗号分隔的值列表)。 这些资源通常代表 ConnectionFactory 实现的目标 JMS 客户端库。
  • JMS Broker URI - 指向 JMS 消息代理网络位置的 URI。例如:
    • Apache ActiveMQ - 单代理为 tcp://myhost:1234,多代理为 failover:(tcp://myhost01:1234,tcp://myhost02:1234)。
    • IBM MQ - 单代理为 myhost(1234),多代理为 myhost01(1234),myhost02(1234)。
    • TIBCO EMS - 单代理为 tcp://myhost:1234,多代理为 tcp://myhost01:7222,tcp://myhost02:7222。
    • Qpid JMS (AMQP 1.0) - 单代理为 amqp[s]://myhost:1234, 多代理为 failover:(amqp[s]://myhost01:1234,amqp[s]://myhost02:1234)。

其余厂商特定的配置通过动态属性设置,采用 Java Beans 约定:属性名派生自厂商特定 ConnectionFactory 实现的 set 方法。例如,com.ibm.mq.jms.MQConnectionFactory.setChannel(String) 对应 'channel' 属性, com.ibm.mq.jms.MQConnectionFactory.setTransportType(int) 对应 'transportType' 属性。可用属性列表请查阅厂商提供的文档。 以下是此类厂商文档示例:

除了上一节描述的动态属性和 set 方法,某些提供者还支持通过 Broker URI(以查询参数形式添加到 URI)进行额外配置:

IBM MQ 的 Controller Service 配置示例

属性 值 静态/动态 说明
JMS Connection Factory Implementation com.ibm.mq.jms.MQQueueConnectionFactory 静态 厂商提供的 QueueConnectionFactory 实现
JMS Client Libraries /opt/mqm/java/lib 静态 Linux 系统上客户端 JAR 文件的默认安装路径
JMS Broker URI mqhost01(1414),mqhost02(1414) 静态 Connection Name List 语法。也支持冒号分隔的主机/端口对
JMS SSL Context Service 静态 仅在使用 SSL/TLS 时需要
channel TO.BAR 动态 使用客户端传输模式时必需
queueManager PQM1 动态 队列管理器的名称。始终必需。
transportType 1 动态 对应客户端传输模式的常量整数值。默认值为 "Bindings, then client"