JMSConnectionFactoryProvider Controller Service
描述
提供通用服务来创建特定于供应商的 javax.jms.ConnectionFactory 实现。 一旦成功配置该服务,就可以提供连接工厂服务。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| JMS Connection Factory Implementation Class | | JMS 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:SSLContextServicecn.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
另请参阅
详细说明
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 Connection Factory Implementation - JMS ConnectionFactory
实现类的全限定名。例如:
- Apache ActiveMQ - org.apache.activemq.ActiveMQConnectionFactory
- IBM MQ - com.ibm.mq.jms.MQQueueConnectionFactory
- TIBCO EMS - com.tibco.tibjms.TibjmsQueueConnectionFactory
- Qpid JMS (AMQP 1.0) - org.apache.qpid.jms.JmsConnectionFactory
以下静态配置属性是可选的,但在许多情况下是必需的:
- 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" |