layout: default_md title: Configuring ActiveMQ CPP title-class: page-title-activemq5 type: activemq5
Connectivity > Cross Language Clients > ActiveMQ C++ Clients > Configuring ActiveMQ CPP
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 |  |