The TCP Transport
The TCP transport allows clients to connect to a remote ActiveMQ broker using a TCP socket.
These configuration options are used to tune the underlying TCP transport, and can be configured on a JMS client's connection URI string or on a Brokers transport bind URI.
The options below should be prefixed with transport.* when used on the server side.
The minimum version wireformat that is allowed
Causes all commands that are sent over the transport to be logged (to view use config of the form: log4j.logger.org.apache.activemq.transport.TransportLogger=DEBUG)
Tells the transport thread to run as a daemon or not. Useful to enable when embedding in a Spring container or a web container to allow the container to shut down properly.
When true, it causes the local machines name to resolve to "localhost".
64 * 1024
Sets the socket buffer size in bytes
When true, enables TCP KeepAlive on the broker connection. Ensures connections don't time out on TCP level. Not used by InactivityMonitor!
|useKeepAlive||true||Whether or not the InactivityMonitor should send KeepAliveInfo messages on idle connections. Enabled by default.|
Sets the socket timeout in milliseconds
|soWriteTimeout||0||Sets the socket write timeout in milliseconds. If a socketWrite() does not succeed within the specified timeout, the socket is closed.|
A non-zero value specifies the connection timeout in milliseconds. A zero value means wait forever for the connection to be established. Negative values are ignored.
The name of the WireFormat to use
All the properties with this prefix are used to configure the wireFormat. See Configuring Wire Formats for more information
The false value causes all sockets to be closed synchronously
When > -1 causes the socket soLinger option to be enabled with this value. When == -1, causes soLinger to be disabled. (from 5.6.0)
The maximum number of sockets the broker is allowed to create
client only) The preferred Differentiated Services traffic class to be set on outgoing packets, as described in RFC 2475. Valid integer values: [0,64). Valid string values: EF, AF[1-3][1-4] or CS[0-7]. With JDK 6, only works when the Java Runtime uses the IPv4 stack, which can be done by setting the java.net.preferIPv4Stack system property to be true. Cannot be used at the same time as the typeOfService option.
(client only) The preferred Type of Service value to be set on outgoing packets. Valid integer values: [0,256). With JDK 6, only works when the Java Runtime uses the IPv4 stack, which can be done by setting the java.net.preferIPv4Stack system property to be true. Cannot be used at the same time as the diffServ option
When true, the TCP_NODELAY setting is enabled on the socket.
On Server side (in TransportConnector)
On Client side
Differentiated Services or Types of Service
There is support for setting Differentiated Services - as outlined in IETF RCF 2475.
In order to configure the broker so that all outgoing packets from the broker match the DSCP values set on incoming packets - you will need to apply IP Tables scripts - found here.