307.2. 组件选项和配置
Simple JMS 组件支持 15 个选项,如下所列。
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| ConnectionFactory (advanced) | 需要 ConnectionFactory 才能启用 SjmsComponent。它可以直接设置,也可以设置为 ConnectionResource 的一部分。 | ConnectionFactory | |
| connectionResource (advanced) | ConnectionResource 是一个接口,允许对 ConnectionFactory 进行自定义和容器控制。如需了解更多详细信息,请参阅 插件连接资源管理。 | ConnectionResource | |
| connectionCount (common) | 此组件下启动的端点的最大可用连接数 | 1 | 整数 |
| jmsKeyFormatStrategy (advanced) | 可插拔编码和解码 JMS 密钥策略,以便它们能够与 JMS 规范兼容。Camel 提供了开箱即用的一个实施:default.默认策略可以安全地放入点和连字符(. 和 -)。可用于 JMS 代理,其不小心是 JMS 标头键是否包含非法字符。您可以提供自己的 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 # 表示法引用它。 | JmsKeyFormatStrategy | |
| transactionCommit 策略 (transaction) | 要配置要使用的提交策略类型。Camel 开箱即用提供了两个实现,即 default 和 batch。 | TransactionCommit 策略 | |
| destinationCreation Strategy (advanced) | 使用自定义 DestinationCreationStrategy。 | DestinationCreation 策略 | |
| timedTaskManager (advanced) | 使用自定义 TimedTaskManager | TimedTaskManager | |
| messageCreatedStrategy (advanced) | 要使用给定的 MessageCreatedStrategy,后者在 Camel 在 Camel 发送 JMS 消息时创建 javax.jms.Message 对象的新实例。 | MessageCreatedStrategy | |
| connectionTestOnBorrow (advanced) | 在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,在从池返回之前,每个 javax.jms.Connection 应经过测试(调用 start)。 | true | 布尔值 |
| connectionUsername (security) | 创建 javax.jms.Connection 时使用的用户名,在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时使用。 | 字符串 | |
| connectionPassword (security) | 创建 javax.jms.Connection 时使用的密码,在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时使用。 | 字符串 | |
| connectionClientId (advanced) | 创建 javax.jms.Connection 时使用的客户端 ID,在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时使用。 | 字符串 | |
| connectionMaxWait (advanced) | 当池使用默认 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,池被耗尽时,等待 millis 的最大等待时间。 | 5000 | long |
| headerFilterStrategy (filter) | 使用自定义 org.apache.camel.spi.HeaderFilterStrategy 过滤到 Camel 消息的标头。 | HeaderFilterStrategy | |
| resolveProperty Placeholders (advanced) | 组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。 | true | 布尔值 |
Simple JMS 端点使用 URI 语法进行配置:
sjms:destinationType:destinationName
使用以下路径和查询参数:
307.2.1. 路径参数(2 参数): 复制链接链接已复制到粘贴板!
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| destinationType | 要使用的目的地类型 | queue | 字符串 |
| destinationName | required DestinationName 是 JMS 队列或主题名称。默认情况下,destinationName 解释为队列名称。 | 字符串 |
307.2.2. 查询参数(34 参数): 复制链接链接已复制到粘贴板!
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| acknowledgementMode (common) | JMS 确认名称,即 SESSION_TRANSACTED、CLIENT_ACKNOWLEDGE、AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ 确认 | SessionAcknowledgement Type |
| bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
| consumerCount (consumer) | 设置用于此端点的消费者监听程序数量。 | 1 | int |
| durableSubscriptionId (consumer) | 设置持久主题所需的持久订阅 Id。 | 字符串 | |
| 同步 (consumer) | 设置是否应严格使用同步处理,还是允许 Camel 使用异步处理(如果支持)。 | true | 布尔值 |
| ExceptionHandler ( consumer) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
| exchangePattern (consumer) | 在消费者创建交换时设置交换模式。 | ExchangePattern | |
| messageSelector (consumer) | 设置 JMS Message selector 语法。 | 字符串 | |
| namedReplyTo (producer) | 将回复设置为用于 InOut producer 端点的目的地名称。回复目的地的类型可以通过其名称中的起始前缀(topic: 或 queue:)决定。 | 字符串 | |
| persistent (producer) | 用于启用/禁用消息持久性的标志。 | true | 布尔值 |
| producerCount (producer) | 设置用于此端点的制作者数量。 | 1 | int |
| TTL (producer) | 用于调整生成消息的 Time To Live 值的标志。 | -1 | long |
| allowNullBody (producer) | 是否允许发送没有正文的消息。如果此选项为 false,并且消息正文为 null,则抛出 JMSException。 | true | 布尔值 |
| prefillPool (producer) | 是否在启动时预先填充制作者连接池,或者根据需要创建连接 lazy。 | true | 布尔值 |
| responseTimeOut (producer) | 设置在超时 InOut 响应前应等待的时间。 | 5000 | long |
| asyncStartListener (advanced) | 在启动路由时,是否异步启动消费者消息监听程序。例如,如果 JmsConsumer 无法连接到远程 JMS 代理,则在重试和/或故障转移时可能会阻止。这将导致 Camel 在启动路由时阻止。通过将此选项设置为 true,您将让路由启动,而 JmsConsumer 以异步模式使用专用线程连接到 JMS 代理。如果使用这个选项,请注意,如果无法建立连接,那么会记录异常在 WARN 级别,消费者将无法接收消息;然后您可以重启路由来重试。 | false | 布尔值 |
| asyncStopListener (advanced) | 在停止路由时,是否异步停止消费者消息监听程序。 | false | 布尔值 |
| connectionCount (advanced) | 此端点可用的最大连接数 | 整数 | |
| ConnectionFactory (advanced) | 初始化端点的 connectionFactory,它优先于组件的 connectionFactory (若有) | ConnectionFactory | |
| connectionResource (advanced) | 初始化端点的 connectionResource,它优先于组件的 connectionResource (若有) | ConnectionResource | |
| destinationCreationStrategy (advanced) | 使用自定义 DestinationCreationStrategy。 | DestinationCreation 策略 | |
| exceptionListener (advanced) | 指定正在获得任何底层 JMS 异常通知的 JMS Exception Listener。 | ExceptionListener | |
| headerFilterStrategy (advanced) | 使用自定义 HeaderFilterStrategy 过滤到 Camel 消息的标头。 | HeaderFilterStrategy | |
| includeAllJMSXProperties (advanced) | 从 JMS 映射到 Camel 消息时,是否要包含所有 JMSXxxx 属性。把它设置为 true 将包括 JMSXAppID 和 JMSXUserID 等属性。注: 如果您使用自定义 headerFilterStrategy,则不会应用这个选项。 | false | 布尔值 |
| jmsKeyFormatStrategy (advanced) | 可插拔编码和解码 JMS 密钥策略,以便它们能够与 JMS 规范兼容。Camel 提供了两个开箱即用的实现:default 和 passthrough。默认策略可以安全地放入点和连字符(. 和 -)。passthrough 策略将密钥保留原样。可用于 JMS 代理,其不小心是 JMS 标头键是否包含非法字符。您可以提供自己的 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 # 表示法引用它。 | JmsKeyFormatStrategy | |
| mapJmsMessage (advanced) | 指定 Camel 是否应该自动将收到的 JMS 消息映射到合适的有效负载类型,如 javax.jms.TextMessage 到 String 等。如需了解更多详细信息,请参阅映射如何工作。 | true | 布尔值 |
| messageCreatedStrategy (advanced) | 要使用给定的 MessageCreatedStrategy,后者在 Camel 在 Camel 发送 JMS 消息时创建 javax.jms.Message 对象的新实例。 | MessageCreatedStrategy | |
| errorHandlerLoggingLevel (logging) | 允许为日志记录未捕获的异常配置默认的 errorHandler 日志记录级别。 | WARN | LoggingLevel |
| errorHandlerLogStackTrace (logging) | 允许由默认的 errorHandler 控制是否应记录堆栈追踪。 | true | 布尔值 |
| 转换 (事务) | 指定是否使用转换模式 | false | 布尔值 |
| transactionBatchCount (transaction) | 如果转换在提交事务前将进程的消息数量设置为进程。 | -1 | int |
| transactionBatchTimeout (transaction) | 为批处理事务设置超时(在 millis 中),该值应为 1000 或更高。 | 5000 | long |
| transactionCommitStrategy (transaction) | 设置提交策略。 | TransactionCommit 策略 | |
| sharedJMSSession (transaction) | 指定是否与其他 SJMS 端点共享 JMS 会话。如果您的路由正在访问多个 JMS 提供程序,则关闭此项。如果您需要对多个 JMS 提供程序的事务,请使用 jms 组件来利用 XA 事务。 | true | 布尔值 |