// kafka-connector options: START
[[camel-sjms2-kafka-connector-source]]
= camel-sjms2-kafka-connector source configuration

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

[source,xml]
----
<dependency>
  <groupId>org.apache.camel.kafkaconnector</groupId>
  <artifactId>camel-sjms2-kafka-connector</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel Kafka connector version -->
</dependency>
----

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

[source,java]
----
connector.class=org.apache.camel.kafkaconnector.sjms2.CamelSjms2SourceConnector
----


The camel-sjms2 source connector supports 53 options, which are listed below.



[width="100%",cols="2,5,^1,1,1",options="header"]
|===
| Name | Description | Default | Required | Priority
| *camel.source.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
| *camel.source.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
| *camel.source.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" | false | MEDIUM
| *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
| *camel.source.endpoint.consumerCount* | Sets the number of consumer listeners used for this endpoint. | 1 | false | MEDIUM
| *camel.source.endpoint.durable* | Sets topic consumer to durable. | false | false | MEDIUM
| *camel.source.endpoint.durableSubscriptionId* | Sets the durable subscription Id required for durable topics. | null | false | MEDIUM
| *camel.source.endpoint.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
| *camel.source.endpoint.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
| *camel.source.endpoint.shared* | Sets the consumer to shared. | false | false | MEDIUM
| *camel.source.endpoint.subscriptionId* | Sets the subscription Id, required for durable or shared topics. | null | false | MEDIUM
| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | true | false | MEDIUM
| *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
| *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
| *camel.source.endpoint.messageSelector* | Sets the JMS Message selector syntax. | null | false | MEDIUM
| *camel.source.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 | false | MEDIUM
| *camel.source.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
| *camel.source.endpoint.basicPropertyBinding* | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | false | MEDIUM
| *camel.source.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
| *camel.source.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
| *camel.source.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
| *camel.source.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
| *camel.source.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
| *camel.source.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
| *camel.source.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 | false | MEDIUM
| *camel.source.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 | false | MEDIUM
| *camel.source.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 | false | MEDIUM
| *camel.source.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 | false | MEDIUM
| *camel.source.endpoint.errorHandlerLoggingLevel* | Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF] | "WARN" | false | MEDIUM
| *camel.source.endpoint.errorHandlerLogStackTrace* | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | false | MEDIUM
| *camel.source.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
| *camel.source.endpoint.transactionBatchCount* | If transacted sets the number of messages to process before committing a transaction. | -1 | false | LOW
| *camel.source.endpoint.transactionBatchTimeout* | Sets timeout (in millis) for batch transactions, the value should be 1000 or higher. | 5000L | false | LOW
| *camel.source.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
| *camel.source.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 | false | MEDIUM
| *camel.component.sjms2.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
| *camel.component.sjms2.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
| *camel.component.sjms2.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
| *camel.component.sjms2.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
| *camel.component.sjms2.basicPropertyBinding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | false | LOW
| *camel.component.sjms2.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
| *camel.component.sjms2.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
| *camel.component.sjms2.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 | false | MEDIUM
| *camel.component.sjms2.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 | false | MEDIUM
| *camel.component.sjms2.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 | false | MEDIUM
| *camel.component.sjms2.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
| *camel.component.sjms2.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 | false | MEDIUM
| *camel.component.sjms2.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 | false | MEDIUM
| *camel.component.sjms2.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
| *camel.component.sjms2.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
| *camel.component.sjms2.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
| *camel.component.sjms2.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
| *camel.component.sjms2.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
|===



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





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





The camel-sjms2 sink connector has no aggregation strategies out of the box.
// kafka-connector options: END

[NOTE]
====
*Do not use activemq-all 5.16.0 or older with the SJMS2 connector* 

The activemq-all jar contains packages older versions of Camel that cause conflict when trying to run the SJMS2 connector. You may find very interesting errors such as java.lang.NoSuchMethodError: org.apache.camel.main.Main.configure()Lorg/apache/camel/main/MainConfigurationProperties when trying to do so.
====
