308.2. 组件选项和配置
Simple JMS2 组件支持 15 个选项,如下所列。
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
connectionFactory (advanced) | 需要 ConnectionFactory 才能启用 SjmsComponent。它可以直接设置,或设置为 ConnectionResource 的一部分。 | ConnectionFactory | |
connectionResource (advanced) | ConnectionResource 是一个接口,允许对 ConnectionFactory 进行自定义和容器控制。详情请查看可插拔连接资源管理。 | ConnectionResource | |
connectionCount (common) | 此组件下启动的端点可用的最大连接数 | 1 | 整数 |
jmsKeyFormatStrategy (advanced) | 用于编码和解码 JMS 密钥的可插拔策略,以便它们能够与 JMS 规范兼容。Camel 提供了一个开箱即用的实现:default。默认策略将安全地 marshal 句点和连字符(. 和 -)。可用于 JMS 代理,这些代理不关心 JMS 标头键是否包含非法字符。您可以提供自己的 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 # 表示法引用它。 | JmsKeyFormatStrategy | |
transactionCommit Strategy (transaction) | 要配置要使用的提交策略。Camel 开箱即用提供了两个实施,即 default 和 batch。 | TransactionCommit Strategy | |
destinationCreation 策略 (advanced) | 使用自定义 DestinationCreationStrategy。 | DestinationCreation 策略 | |
timedTaskManager (advanced) | 使用自定义 TimedTaskManager | TimedTaskManager | |
messageCreatedStrategy (advanced) | 使用在 Camel 发送 JMS 消息时调用的 given MessageCreatedStrategy,在 Camel 创建 javax.jms.Message 对象的新实例时调用。 | MessageCreatedStrategy | |
connectionTestOnBorrow (advanced) | 在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,应测试每个 javax.jms.Connection (调用启动),然后再从池返回。 | true | 布尔值 |
connectionUsername (security) | 使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时创建 javax.jms.Connection 时使用的用户名。 | 字符串 | |
connectionPassword (security) | 使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时创建 javax.jms.Connection 时使用的密码。 | 字符串 | |
connectionClientId (advanced) | 使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时创建 javax.jms.Connection 时使用的客户端 ID。 | 字符串 | |
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 JMS2 端点使用 URI 语法进行配置:
sjms2:destinationType:destinationName
sjms2:destinationType:destinationName
使用以下路径和查询参数:
308.2.1. 路径参数(2 参数):
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
destinationType | 要使用的目标类型 | queue | 字符串 |
destinationName | 必需 DestinationName 是一个 JMS 队列或主题名称。默认情况下,targetName 被解释为队列名称。 | 字符串 |
308.2.2. 查询参数(37 参数):
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
acknowledgementMode (common) | JMS 确认名称,即: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ ACKNOWLEDGE | SessionAcknowledgement Type |
bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
consumerCount (consumer) | 设置用于此端点的消费者监听程序数量。 | 1 | int |
durable (consumer) | 将主题消费者设置为 durable。 | false | 布尔值 |
durableSubscriptionId (consumer) | 设置持久主题所需的持久订阅 Id。 | 字符串 | |
shared (consumer) | 将消费者设置为共享。 | false | 布尔值 |
subscriptionId (consumer) | 设置持久或共享主题所需的订阅 Id。 | 字符串 | |
synchronous (consumer) | 设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。 | true | 布尔值 |
exceptionHandler (consumer) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer) | 在消费者创建交换时设置交换模式。 | ExchangePattern | |
messageSelector (consumer) | 设置 JMS Message 选择器语法。 | 字符串 | |
namedReplyTo (producer) | 设置用于 InOut producer 端点的回复目的地名称。 | 字符串 | |
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) | 设置在超时超时响应前应等待的时间。 | 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。默认策略将安全地 marshal 句点和连字符(. 和 -)。passthrough 策略将密钥保留为原样。可用于 JMS 代理,这些代理不关心 JMS 标头键是否包含非法字符。您可以提供自己的 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 # 表示法引用它。 | JmsKeyFormatStrategy | |
mapJmsMessage (advanced) | 指定 Camel 是否将收到的 JMS 消息自动映射到适合的有效负载类型,如 javax.jms.TextMessage 到 String 等。如需了解更多详细信息,请参阅映射如何工作部分。 | true | 布尔值 |
messageCreatedStrategy (advanced) | 使用在 Camel 发送 JMS 消息时调用的 given MessageCreatedStrategy,在 Camel 创建 javax.jms.Message 对象的新实例时调用。 | MessageCreatedStrategy | |
errorHandlerLoggingLevel (logging) | 允许为日志记录无法捕获的异常配置默认 errorHandler 日志记录级别。 | WARN | LoggingLevel |
errorHandlerLogStackTrace (logging) | 允许默认 errorHandler 控制是否应记录 stacktrace。 | true | 布尔值 |
转换 (事务) | 指定是否使用转换模式 | false | 布尔值 |
transactionBatchCount (transaction) | 如果转换了,请在提交事务前将消息数量设置为进程。 | -1 | int |
transactionBatchTimeout (transaction) | 为批处理事务设置超时(在 millis 中),该值应该是 1000 或更高。 | 5000 | long |
transactionCommitStrategy (transaction) | 设置提交策略。 | TransactionCommit Strategy | |
sharedJMSSession (transaction) | 指定是否与其他 SJMS 端点共享 JMS 会话。如果您的路由正在访问多个 JMS 提供程序,请关闭它。如果您需要对多个 JMS 提供程序进行事务,请使用 jms 组件来利用 XA 事务。 | true | 布尔值 |