Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Direct

...

Component

...

The

...

direct:

...

component

...

provides

...

direct,

...

synchronous

...

invocation

...

of

...

any

...

consumers

...

when

...

a

...

producer

...

sends

...

a

...

message

...

exchange.

...

This

...

endpoint

...

can

...

be

...

used

...

to

...

connect

...

existing

...

routes

...

in

...

the

...

same

...

camel

...

context.

{:=
Tip
title
Asynchronous

The SEDA component provides asynchronous invocation of any consumers when a producer sends a message exchange.

Tip
titleConnection to other camel contexts

The VM component provides connections between Camel contexts as long they run in the same JVM.

URI format

Code Block
languagetext
}
The [Seda] component provides asynchronous invocation of any consumers when a producer sends a message exchange.
{tip}

{tip:title=Connection to other camel contexts}
The [VM] component provides connections between Camel contexts as long they run in the same *JVM*.
{tip}

h3. URI format

{code}
direct:someName[?options]
{code}

Where *someName* can be any string to uniquely identify the endpoint

h3. Options
{div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{allowMultipleConsumers}} | {{true}} | *@deprecated* If set to {{false}}, then when a second consumer is started on the endpoint, an {{IllegalStateException}} is thrown. *Will be removed in Camel 2.1:* Direct endpoint does not support multiple consumers. |
{div}

You can append query options to the URI in the following format, {{

Where someName can be any string that uniquely identifies the endpoint.

Options

Name

Default Value

Description

allowMultipleConsumers

true

@deprecated

If set to false, then when a second consumer is started on the endpoint, an IllegalStateException is thrown.

Will be removed in Camel 2.1: Direct endpoint does not support multiple consumers.

block

false

Camel 2.11.1: If sending a message to a direct endpoint which has no active consumer, the producer will block for timeout milliseconds waiting for a consumer to become active.

timeout

30000

Camel 2.11.1: The timeout value, in milliseconds, to block, when enabled, for an active consumer.

failIfNoConsumers

true

Camel 2.16.0: Indicates whether the producer should fail by throwing an exception when sending to a direct endpoint with no active consumers.

You can append query options to the URI in the following format: ?option=value&option=value&...

 

Samples

In the route below we use the direct component to link the two routes together:

Code Block
languagejava
}}

h3. Samples
In the route below we use the direct component to link the two routes together:

{code:java}
from("activemq:queue:order.in")
    .to("bean:orderServer?method=validate")
    .to("direct:processOrder?block=true&timeout=5000");

from("direct:processOrder")
    .to("bean:orderService?method=process")
    .to("activemq:queue:order.out");
{code}

And

...

the

...

sample

...

using

...

spring

...

DSL:

Code Block
languagexml

{code:xml}
   <route>
     <from uri="activemq:queue:order.in"/>
     <to uri="bean:orderService?method=validate"/>
     <to uri="direct:processOrder?failIfNoConsumers=false"/>
  </route>

  <route>
     <from uri="direct:processOrder"/>
     <to uri="bean:orderService?method=process"/>
     <to uri="activemq:queue:order.out"/>
  </route>    
{code}

See

...

also

...

samples

...

from

...

the

...

SEDA component,

...

how

...

they

...

can

...

be

...

used

...

together.

...

Include Page
Endpoint See Also
Endpoint See Also