ActiveMQ Journal Component

The ActiveMQ Journal Component allows messages to be stored in a rolling log file and then consumed from that log file. The journal aggregates and batches up concurrent writes so that the overhead of writing and waiting for the disk sync is relatively constant regardless of how many concurrent writes are being done. Therefore, this component supports and encourages you to use multiple concurrent producers to the same journal endpoint.

Each journal endpoint uses a different log file and therefore write batching (and the associated performance boost) does not occur between multiple endpoints.

This component only supports one active consumer on the endpoint. After the message is processed by the consumer's processor, the log file is marked and only subsequent messages in the log file will get delivered to consumers.

URI format

activemq.journal:directoryName[?options]

So for example, to send to the journal located in the /tmp/data directory you would use the following URI:

activemq.journal:/tmp/data

Options

Name Default Value Description
syncConsume false If set to true, when the journal is marked after a message is consumed, wait till the Operating System has verified the mark update is safely stored on disk.
syncProduce true If set to true, wait till the Operating System has verified the message is safely stored on disk.

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

Expected Exchange Data Types

The consumer of a Journal endpoint generates DefaultExchange objects with the in message :

  • header "journal" : set to the endpoint uri of the journal the message came from
  • header "location" : set to a Location which identifies where the recored was stored on disk
  • body : set to ByteSequence which contains the byte array data of the stored message

The producer to a Journal endpoint expects an Exchange with an In message where the body can be converted to a ByteSequence or a byte[].

See Also

© 2004-2011 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram