The configuration of ActiveMQ is so slick, we decided to take a similar approach with ActiveMQ-CPP. All configuration is achieved via URI-encoded parameters, either on the connection or destinations. Through the URIs, you can configure virtually every facet of your ActiveMQ-CPP client. The tables below show the comprehensive set of parameters.

Connection URI Parameters

Example Configuration

cf = new ActiveMQConnectionFactory(
    "tcp://localhost:61616?wireFormat=openwire&wireFormat.tightEncodingEnabled=true");

Socket Options

Option Name

Default

Description

inputBufferSize

10000

The number of bytes in the buffered input stream's buffer

outputBufferSize

10000

The number of bytes in the buffered output stream's buffer

soLinger

0

Socket SOLinger value

soKeepAlive

false

Socket SOKeepAlive value

soReceiveBufferSize

-1

Socket receive buffer. If -1, use OS default.

soSendBufferSize

-1

Socket send buffer. If -1, use OS default.

Transport Options

Option Name

Default

Description

commandTracingEnabled

false

If true, enables tracing of incoming and outgoing transport commands

tcpTracingEnabled

false

If true, enables tracing of raw network IO (in hex)

useAsyncSend

false

If true, enables asynchronous sending of messages.

Transaction Options

Option Name

Default

Description

transaction.maxRedeliveryCount

5

Maximum number of redelivery attempts.

Wire Format Protocol Options

Option Name

Default

Description

wireFormat

openwire

Selects the wire format to use. Out of the box, can be either stomp or openwire.

wireFormat.stackTraceEnabled

false

Should the stack trace of exception that occur on the broker be sent to the client? Only used by openwire protocol.

wireFormat.cacheEnabled

false

Should commonly repeated values be cached so that less marshalling occurs? Only used by openwire protocol.

wireFormat.tcpNoDelayEnabled

false

Does not affect the wire format, but provides a hint to the peer that TCP nodelay should be enabled on the communications Socket. Only used by openwire protocol.

wireFormat.sizePrefixDisabled

false

Should serialized messages include a payload length prefix? Only used by openwire protocol.

wireFormat.tightEncodingEnabled

false

Should wire size be optimized over CPU usage? Only used by the openwire protocol.

Destination URI Parameters

Example Configuration

d = session->createTopic("com.foo?consumer.prefetchSize=2000&consumer.noLocal=true");

General Options

Option Name

Default

Description

consumer.prefetchSize

1000

The number of message the consumer will prefetch.

consumer.maximumPendingMessageLimit

0

Use to control if messages are dropped if a slow consumer situation exists.

consumer.noLocal

false

Same as the noLocal flag on a Topic consumer. Exposed here so that it can be used with a queue.

consumer.dispatchAsync

false

Should the broker dispatch messages asynchronously to the consumer.

consumer.retroactive

false

Is this a Retroactive Consumer.

consumer.selector

null

JMS Selector used with the consumer.

consumer.exclusive

false

Is this an Exclusive Consumer.

consumer.priority

0

Allows you to configure a Consumer Priority.

OpenWire-only Options

Option Name

Default

Description

consumer.browser

false

 

consumer.networkSubscription

false

 

consumer.optimizedAcknowledge

false

Enables an optimised acknowledgement mode where messages are acknowledged in batches rather than individually. Alternatively, you could use Session.DUPS_OK_ACKNOWLEDGE acknowledgement mode for the consumers which can often be faster. WARNING enabling this issue could cause some issues with auto-acknowledgement on reconnection

consumer.noRangeAcks

false

 

consumer.retroactive

false

Sets whether or not retroactive consumers are enabled. Retroactive consumers allow non-durable topic subscribers to receive old messages that were published before the non-durable subscriber started.

producer.dispatchAsyc

false

 

© 2004-2011 The Apache Software Foundation.
Apache ActiveMQ, ActiveMQ, Apache, the Apache feather logo, and the Apache ActiveMQ 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