Name

Seda — provides an asynchronous connection to any consumer in the same camelContext element

Overview

Seda endpoints provide asynchronous SEDA behavior, so that messages are exchanged on a BlockingQueue and consumers are invoked in a separate thread from the producer.

Queues are only visible within a single camelContext element. If you want to communicate across camelContext elements, use a vm endpoint.

[Note]Note

Direct endpoints provide synchronous invocation of any consumers when a producer sends a message exchange.

URI format

Example 11, “Seda URI format” shows the syntax for a Seda endpoint URI.

Example 11. Seda URI format

seda:queueName[?option=value]

queueName can be any string that uniquely identifies the endpoint within the current camelContext elements.

[Note]Note

When matching consumer endpoints to producer endpoints, only the queueName is considered.

Options

Table 29, “Seda component options” describes the Seda component's options.

Table 29. Seda component options

NameDefaultDescription
sizeUnboundedSpecifies the maximum size of the SEDA queue.
concurrentConsumers1Specifies the number of concurrent threads processing exchanges.
waitForTaskToCompleteIfReplyExpectedSpecify whether the caller should wait for the task to complete before continuing. Valid settings are Always, Never or IfReplyExpected. IfReplyExpected specifies that the caller will only wait if the message exchange pattern is request/reply.
timeout30000Specifies the maximum amount of time, in milliseconds, that a producer will wait for a task to complete before timing out.
multipleConsumersfalseSpecifies whether multiple consumers are allowed or not. If enabled, multiple consumers can receive messages from a SEDA queue.
limitConcurrentConsumerstrueSpecifies whether to limit the number of concurrent consumers to a maximum of 500. If true setting concurrentConsumers to a number greater than 500 causes an exception to be thrown.