Chapter 5. Configuration options This chapter lists the available configuration options for AMQ OpenWire JMS. JMS configuration options are set as query parameters on the connection URI. For more information, see Section 4.3, "Connection URIs" . 5.1. JMS options jms.username The user name the client uses to authenticate the connection. jms.password The password the client uses to authenticate the connection. jms.clientID The client ID that the client applies to the connection. jms.closeTimeout The timeout in milliseconds for JMS close operations. The default is 15000 (15 seconds). jms.connectResponseTimeout The timeout in milliseconds for JMS connect operations. The default is 0, meaning no timeout. jms.sendTimeout The timeout in milliseconds for JMS send operations. The default is 0, meaning no timeout. jms.checkForDuplicates If enabled, ignore duplicate messages. It is enabled by default. jms.disableTimeStampsByDefault If enabled, do not timestamp messages. It is disabled by default. jms.useAsyncSend If enabled, send messages without waiting for acknowledgment. It is disabled by default. jms.alwaysSyncSend If enabled, send waits for acknowledgment in all delivery modes. It is disabled by default. jms.useCompression If enabled, compress message bodies. It is disabled by default. jms.useRetroactiveConsumer If enabled, non-durable subscribers can receive messages that were published before the subscription started. It is disabled by default. Prefetch policy options Prefetch policy determines how many messages each MessageConsumer fetches from the remote peer and holds in a local "prefetch" buffer. jms.prefetchPolicy.queuePrefetch The number of messages to prefetch for queues. The default is 1000. jms.prefetchPolicy.queueBrowserPrefetch The number of messages to prefetch for queue browsers. The default is 500. jms.prefetchPolicy.topicPrefetch The number of messages to prefetch for non-durable topics. The default is 32766. jms.prefetchPolicy.durableTopicPrefetch The number of messages to prefetch for durable topics. The default is 100. jms.prefetchPolicy.all This can be used to set all prefetch values at once. The value of prefetch can affect the distribution of messages to multiple consumers on a queue. A higher value can result in larger batches sent at once to each consumer. To achieve more even round-robin distribution when consumers operate at different rates, use a lower value. Redelivery policy options Redelivery policy controls how redelivered messages are handled on the client. jms.redeliveryPolicy.maximumRedeliveries The number of times redelivery is attempted before the message is sent to the dead letter queue. The default is 6. -1 means no limit. jms.redeliveryPolicy.redeliveryDelay The time in milliseconds between redelivery attempts. This is used if initialRedeliveryDelay is 0. The default is 1000 (1 second). jms.redeliveryPolicy.initialRedeliveryDelay The time in milliseconds before the first redelivery attempt. The default is 1000 (1 second). jms.redeliveryPolicy.maximumRedeliveryDelay The maximum time in milliseconds between redelivery attempts. This is used if useExponentialBackOff is enabled. The default is 1000 (1 second). -1 means no limit. jms.redeliveryPolicy.useExponentialBackOff If enabled, increase redelivery delay with each subsequent attempt. It is disabled by default. jms.redeliveryPolicy.backOffMultiplier The multiplier for increasing the redelivery delay. The default is 5. jms.redeliveryPolicy.useCollisionAvoidance If enabled, adjust the redelivery delay slightly up or down to avoid collisions. It is disabled by default. jms.redeliveryPolicy.collisionAvoidanceFactor The multiplier for adjusting the redelivery delay. The default is 0.15. nonBlockingRedelivery If enabled, allow out of order redelivery, to avoid head-of-line blocking. It is disabled by default. 5.2. TCP options closeAsync If enabled, close the socket in a separate thread. It is enabled by default. connectionTimeout The timeout in milliseconds for TCP connect operations. The default is 30000 (30 seconds). 0 means no timeout. dynamicManagement If enabled, allow JMX management of the transport logger. It is disabled by default. ioBufferSize The I/O buffer size in bytes. The default is 8192 (8 KiB). jmxPort The port for JMX management. The default is 1099. keepAlive If enabled, use TCP keepalive. This is distinct from the keepalive mechanism based on KeepAliveInfo messages. It is disabled by default. logWriterName The name of the org.apache.activemq.transport.LogWriter implementation. Name-to-class mappings are stored in the resources/META-INF/services/org/apache/activemq/transport/logwriters directory. The default is default . soLinger The socket linger option. The default is 0. soTimeout The timeout in milliseconds for socket read operations. The default is 0, meaning no timeout. soWriteTimeout The timeout in milliseconds for socket write operations. The default is 0, meaning no timeout. startLogging If enabled, and the trace option is also enabled, log transport startup events. It is enabled by default. tcpNoDelay If enabled, do not delay and buffer TCP sends. It is disabled by default. threadName If set, the name assigned to the transport thread. The remote address is appended to the name. It is unset by default. trace If enabled, log transport events to log4j.logger.org.apache.activemq.transport.TransportLogger . It is disabled by default. useInactivityMonitor If enabled, time out connections that fail to send KeepAliveInfo messages. It is enabled by default. useKeepAlive If enabled, periodically send KeepAliveInfo messages to prevent the connection from timing out. It is enabled by default. useLocalHost If enabled, make local connections using the name localhost instead of the current hostname. It is disabled by default. 5.3. SSL/TLS options socket.keyStore The path to the SSL/TLS key store. A key store is required for mutual SSL/TLS authentication. If unset, the value of the javax.net.ssl.keyStore system property is used. socket.keyStorePassword The password for the SSL/TLS key store. If unset, the value of the javax.net.ssl.keyStorePassword system property is used. socket.keyStoreType The string name of the trust store type. The default is the value of java.security.KeyStore.getDefaultType() . socket.trustStore The path to the SSL/TLS trust store. If unset, the value of the javax.net.ssl.trustStore system property is used. socket.trustStorePassword The password for the SSL/TLS trust store. If unset, the value of the javax.net.ssl.trustStorePassword system property is used. socket.trustStoreType The string name of the trust store type. The default is the value of java.security.KeyStore.getDefaultType() . socket.enabledCipherSuites A comma-separated list of cipher suites to enable. If unset, the JVM default ciphers are used. socket.enabledProtocols A comma-separated list of SSL/TLS protocols to enable. If unset, the JVM default protocols are used. 5.4. OpenWire options wireFormat.cacheEnabled If enabled, avoid excessive marshalling and bandwidth consumption by caching frequently used values. It is enabled by default. wireFormat.cacheSize The number of cache entries. The cache is per connection. The default is 1024. wireFormat.maxInactivityDuration The maximum time in milliseconds before a connection with no activity is considered dead. The default is 30000 (30 seconds). wireFormat.maxInactivityDurationInitalDelay The initial delay in milliseconds before inactivity checking begins. Note that Inital is misspelled. The default is 10000 (10 seconds). wireFormat.maxFrameSize The maximum frame size in bytes. The default is the value of java.lang.Long.MAX_VALUE . wireFormat.sizePrefixDisabled If set true, do not prefix packets with their size. It is false by default. wireFormat.stackTraceEnabled If enabled, send stack traces from exceptions on the server to the client. It is enabled by default. wireFormat.tcpNoDelayEnabled If enabled, tell the server to activate TCP_NODELAY . It is enabled by default. wireFormat.tightEncodingEnabled If enabled, optimize for smaller encoding on the wire. This increases CPU usage. It is enabled by default. 5.5. Failover options maxReconnectAttempts The number of reconnect attempts allowed before reporting the connection as failed. The default is -1, meaning no limit. 0 disables reconnect. maxReconnectDelay The maximum time in milliseconds between the second and subsequent reconnect attempts. The default is 30000 (30 seconds). randomize If enabled, randomly select one of the failover endpoints. It is enabled by default. reconnectDelayExponent The multiplier for increasing the reconnect delay backoff. The default is 2.0. useExponentialBackOff If enabled, increase the reconnect delay with each subsequent attempt. It is enabled by default. timeout The timeout in milliseconds for send operations waiting for reconnect. The default is -1, meaning no timeout.

Commands: