# Db4o

## Db4o Component

Available as of Apache Camel 2.5

The db4o: component allows you to work with db4o NoSQL database. The camel-db4o library is provided by the Camel Extra project which hosts all *GPL related components for Camel.

## Sending to the endpoint

Sending POJO object to the db4o endpoint adds and saves object into the database. The body of the message is assumed to be a POJO that has to be saved into the db40 database store.

## Consuming from the endpoint

Consuming messages removes (or updates) POJO objects in the database. This allows you to use a Db4o datastore as a logical queue; consumers take messages from the queue and then delete them to logically remove them from the queue.

If you do not wish to delete the object when it has been processed, you can specify `consumeDelete=false` on the URI. This will result in the POJO being processed each poll.

## URI format

    db4o:className[?options]

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

## Options

Name | Default Value | Description
--- | --- | ---
`consumeDelete` | `true` | Option for `Db4oConsumer` only. Specifies whether or not the entity is deleted after it is consumed.
`consumer.delay` | `500` | Option for HibernateConsumer only. Delay in millis between each poll.
`consumer.initialDelay` | `1000` | Option for HibernateConsumer only. Millis before polling starts.
`consumer.userFixedDelay` | `false` | Option for HibernateConsumer only. Set to `true` to use fixed delay between polls, otherwise fixed rate is used. See ScheduledExecutorService in JDK for details.