camel-sjms-kafka-connector sink configuration

When using camel-sjms-kafka-connector as sink make sure to use the following Maven dependency to have support for the connector:

<dependency>
  <groupId>org.apache.camel.kafkaconnector</groupId>
  <artifactId>camel-sjms-kafka-connector</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel Kafka connector version -->
</dependency>

To use this Sink connector in Kafka connect you’ll need to set the following connector.class

connector.class=org.apache.camel.kafkaconnector.sjms.CamelSjmsSinkConnector

The camel-sjms sink connector supports 42 options, which are listed below.

Name Description Default Priority

camel.sink.path.destinationType

The kind of destination to use One of: [queue] [topic]

"queue"

MEDIUM

camel.sink.path.destinationName

DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name.

null

HIGH

camel.sink.endpoint.acknowledgementMode

The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE]

"AUTO_ACKNOWLEDGE"

MEDIUM

camel.sink.endpoint.lazyStartProducer

Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.

false

MEDIUM

camel.sink.endpoint.namedReplyTo

Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name.

null

MEDIUM

camel.sink.endpoint.persistent

Flag used to enable/disable message persistence.

true

MEDIUM

camel.sink.endpoint.producerCount

Sets the number of producers used for this endpoint.

1

MEDIUM

camel.sink.endpoint.ttl

Flag used to adjust the Time To Live value of produced messages.

-1L

MEDIUM

camel.sink.endpoint.allowNullBody

Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.

true

MEDIUM

camel.sink.endpoint.prefillPool

Whether to prefill the producer connection pool on startup, or create connections lazy when needed.

true

MEDIUM

camel.sink.endpoint.responseTimeOut

Sets the amount of time we should wait before timing out a InOut response.

5000L

MEDIUM

camel.sink.endpoint.asyncStartListener

Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if the connection could not be established, then an exception is logged at WARN level, and the consumer will not be able to receive messages; You can then restart the route to retry.

false

MEDIUM

camel.sink.endpoint.asyncStopListener

Whether to stop the consumer message listener asynchronously, when stopping a route.

false

MEDIUM

camel.sink.endpoint.basicPropertyBinding

Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

MEDIUM

camel.sink.endpoint.connectionCount

The maximum number of connections available to this endpoint

null

MEDIUM

camel.sink.endpoint.connectionFactory

Initializes the connectionFactory for the endpoint, which takes precedence over the component’s connectionFactory, if any

null

MEDIUM

camel.sink.endpoint.connectionResource

Initializes the connectionResource for the endpoint, which takes precedence over the component’s connectionResource, if any

null

MEDIUM

camel.sink.endpoint.destinationCreationStrategy

To use a custom DestinationCreationStrategy.

null

MEDIUM

camel.sink.endpoint.exceptionListener

Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions.

null

MEDIUM

camel.sink.endpoint.headerFilterStrategy

To use a custom HeaderFilterStrategy to filter header to and from Camel message.

null

MEDIUM

camel.sink.endpoint.includeAllJMSXProperties

Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply.

false

MEDIUM

camel.sink.endpoint.jmsKeyFormatStrategy

Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.

null

MEDIUM

camel.sink.endpoint.mapJmsMessage

Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details.

true

MEDIUM

camel.sink.endpoint.messageCreatedStrategy

To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.

null

MEDIUM

camel.sink.endpoint.transactionCommitStrategy

Sets the commit strategy.

null

MEDIUM

camel.sink.endpoint.sharedJMSSession

Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.

true

MEDIUM

camel.component.sjms.connectionCount

The maximum number of connections available to endpoints started under this component

"1"

MEDIUM

camel.component.sjms.lazyStartProducer

Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.

false

MEDIUM

camel.component.sjms.basicPropertyBinding

Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

MEDIUM

camel.component.sjms.connectionClientId

The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.

null

MEDIUM

camel.component.sjms.connectionFactory

A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.

null

MEDIUM

camel.component.sjms.connectionMaxWait

The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.

5000L

MEDIUM

camel.component.sjms.connectionResource

A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.

null

MEDIUM

camel.component.sjms.connectionTestOnBorrow

When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.

true

MEDIUM

camel.component.sjms.destinationCreationStrategy

To use a custom DestinationCreationStrategy.

null

MEDIUM

camel.component.sjms.jmsKeyFormatStrategy

Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.

null

MEDIUM

camel.component.sjms.messageCreatedStrategy

To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.

null

MEDIUM

camel.component.sjms.timedTaskManager

To use a custom TimedTaskManager

null

MEDIUM

camel.component.sjms.headerFilterStrategy

To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.

null

MEDIUM

camel.component.sjms.connectionPassword

The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.

null

MEDIUM

camel.component.sjms.connectionUsername

The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.

null

MEDIUM

camel.component.sjms.transactionCommitStrategy

To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.

null

MEDIUM

The camel-sjms sink connector has no converters out of the box.

The camel-sjms sink connector has no transforms out of the box.

The camel-sjms sink connector has no aggregation strategies out of the box.