// kafka-connector options: START
[[camel-sjms-kafka-connector-sink]]
= 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:

[source,xml]
----
<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

[source,java]
----
connector.class=org.apache.camel.kafkaconnector.sjms.CamelSjmsSinkConnector
----


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



[width="100%",cols="2,5,^1,1,1",options="header"]
|===
| Name | Description | Default | Required | Priority
| *camel.sink.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
| *camel.sink.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | 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" | false | 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 | 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 | false | MEDIUM
| *camel.sink.endpoint.persistent* | Flag used to enable/disable message persistence. | true | false | MEDIUM
| *camel.sink.endpoint.producerCount* | Sets the number of producers used for this endpoint. | 1 | false | MEDIUM
| *camel.sink.endpoint.ttl* | Flag used to adjust the Time To Live value of produced messages. | -1L | false | 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 | false | MEDIUM
| *camel.sink.endpoint.prefillPool* | Whether to prefill the producer connection pool on startup, or create connections lazy when needed. | true | false | MEDIUM
| *camel.sink.endpoint.responseTimeOut* | Sets the amount of time we should wait before timing out a InOut response. | 5000L | false | 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 | false | MEDIUM
| *camel.sink.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
| *camel.sink.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
| *camel.sink.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
| *camel.sink.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
| *camel.sink.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
| *camel.sink.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
| *camel.sink.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | 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 | 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 | false | 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 | false | 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 | false | MEDIUM
| *camel.sink.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | 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 | false | MEDIUM
| *camel.component.sjms.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | 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 | false | 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 | false | MEDIUM
| *camel.component.sjms.autowiredEnabled* | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | 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 | false | 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 | false | 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 | false | 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 | false | MEDIUM
| *camel.component.sjms.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | 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 | false | 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 | false | MEDIUM
| *camel.component.sjms.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
| *camel.component.sjms.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | 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 | false | 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 | false | 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 | false | 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.
// kafka-connector options: END
