Menu Search

Chapter 9. System Properties

The following system properties affect the behaviour of the Qpid JMS client. System properties are global in nature so affect all Qpid interactions made from within the same JVM. For many options, there are equivalent Connection URL options allowing the option to be controlled at the level of the Connection.

Table 9.1. System Properties Affecting Connection Behaviour

Property NameTypeDefault ValueDescription
qpid.amqp.versionstring0-10

Sets the AMQP version to be used - currently supports one of {0-8,0-9,0-91,0-10}.

The client will begin negotiation at the specified version and only negotiate downwards if the Broker does not support the specified version.

qpid.heartbeatint

Defaults to the heartbeat value suggested by the Broker, if any.

Frequency of heartbeat messages (in seconds). A value of 0 disables heartbeating.

Two consecutive missed heartbeats will result in the connection timing out.

This can also be set per connection using the Connection URL options.

For compatibility with old client configuration, the synonym amqj.heartbeat.delay is supported.

ignore_setclientIDbooleanfalseIf a client ID is specified in the connection URL it's used or else an ID is generated. If an ID is specified after it's been set Qpid will throw an exception.

Setting this property to 'true' will disable that check and allow you to set a client ID of your choice later on.


Table 9.2. Config Options For Session Behaviour

Property NameTypeDefault ValueDescription
qpid.dest_syntaxStringADDR

The default addressing syntax. The Address (ADDR) syntax is supported when using AMQP 0-10. Binding URL (BURL) is supported by AMQP protocols 0-8 through to 0-10.

max_prefetchint500

Maximum number of pre-fetched messages per Session. This can also be defaulted for sessions created on a particular connection using the Connection URL options.

qpid.use_legacy_map_messagebooleanfalse

If set will use the old map message encoding. By default the Map messages are encoded using the 0-10 map encoding.

This can also be set per connection using the Connection URL options.

qpid.jms.daemon.dispatcherbooleanfalse

Controls whether the Session dispatcher thread is a daemon thread or not. If this system property is set to true then the Session dispatcher threads will be created as daemon threads. This setting is introduced in version 0.16.


Table 9.3. Config Options For Consumer Behaviour

Property NameTypeDefault ValueDescription
qpid.declare_exchangesBooleantrue

If true, creating a consumer will also declare the exchange on the Broker (specified within the Binding URL associated with the Destination), creating it if is does not already exist.

qpid.declare_queuesBooleantrue

If true, creating a consumer will also declare the queue on the Broker (specified within the Binding URL associated with the Destination), creating it if is does not already exist.

qpid.reject.behaviourStringNORMAL

Used with the maximum delivery count feature. See Section 5.6.3, “Maximum Delivery Count” for details.


Table 9.4. Config Options For Producer Behaviour

Property NameTypeDefault ValueDescription
qpid.default_mandatoryBooleanTrue

If true, messages sent to Queue destinations for which cannot be routed to at least one queue on the Broker, will be returned to the application. See Section 5.5.1, “Mandatory Messages” for more details.

qpid.default_mandatory_topicBooleanFalse

If true, messages sent to Topic destinations for which cannot be routed to at least one queue on the Broker, will be returned to the application. See Section 5.5.1, “Mandatory Messages” for more details..

qpid.default_immediateBooleanFalse

If true, the message will be returned to the application unless the Broker is able to route the message to at least one queue with a consumer attached. See Section 5.5.3, “Immediate Messages” for more details.

qpid.flow_control_wait_failureLong60000

Used with Section 5.5.4, “Flow Control”. The amount of time (in milliseconds) to wait before timing out.

qpid.flow_control_wait_notify_periodLong5000

Used with Section 5.5.4, “Flow Control”. The frequency at which the log message informing that the producer is flow controlled .


Table 9.5. Config Options For Threading

Property NameTypeDefault ValueDescription
qpid.thread_factorystringorg.apache.qpid.thread.DefaultThreadFactory

Specifies the thread factory to use.

If using a real time JVM, you need to set the above property to org.apache.qpid.thread.RealtimeThreadFactory.

qpid.rt_thread_priorityint20

Specifies the priority (1-99) for Real time threads created by the real time thread factory.


Table 9.6. Config Options For I/O

Property NameTypeDefault ValueDescription
qpid.transportstringorg.apache.qpid.transport.network.io.IoNetworkTransport

The transport implementation to be used.

A user could specify an alternative transport mechanism that implements the interface org.apache.qpid.transport.network.OutgoingNetworkTransport.

qpid.sync_op_timeoutlong60000

The length of time (in milliseconds) to wait for a synchronous operation to complete.

For compatibility with older clients, the synonym amqj.default_syncwrite_timeout is supported.

qpid.tcp_nodelaybooleantrue

Sets the TCP_NODELAY property of the underlying socket. The default was changed to true as of Qpid 0.14.

This can also be set per connection using the Connection URL broker optiontcp_nodelay. options.

For compatibility with older clients, the synonym amqj.tcp_nodelay is supported.

qpid.send_buffer_sizeinteger65535

Sets the SO_SNDBUF property of the underlying socket. Added in Qpid 0.16.

For compatibility with older clients, the synonym amqj.sendBufferSize is supported.

qpid.receive_buffer_sizeinteger65535

Sets the SO_RCVBUF property of the underlying socket. Added in Qpid 0.16.

For compatibility with older clients, the synonym amqj.receiveBufferSize is supported.

qpid.failover_method_timeoutlong60000

During failover, this is the timeout for each attempt to try to re-establish the connection. If a reconnection attempt exceeds the timeout, the entire failover process is aborted.

It is only applicable for AMQP 0-8/0-9/0-9-1 clients.


Table 9.7. Config Options For Security - Using SSL for securing connections or using EXTERNAL as the SASL mechanism.

Property NameTypeDefault ValueDescription
qpid.ssl_timeoutlong60000

Timeout value used by the Java SSL engine when waiting on operations.

qpid.ssl.KeyManagerFactory.algorithmstring-

The key manager factory algorithm name. If not set, defaults to the value returned from the Java runtime call KeyManagerFactory.getDefaultAlgorithm()

For compatibility with older clients, the synonym qpid.ssl.keyStoreCertType is supported.

qpid.ssl.TrustManagerFactory.algorithmstring-

The trust manager factory algorithm name. If not set, defaults to the value returned from the Java runtime call TrustManagerFactory.getDefaultAlgorithm()

For compatibility with older clients, the synonym qpid.ssl.trustStoreCertType is supported.


Table 9.8. Config Options For Security - Standard JVM properties needed when Using SSL for securing connections or using EXTERNAL as the SASL mechanism.[a]

Property NameTypeDefault ValueDescription
javax.net.ssl.keyStorestringjvm default

Specifies the key store path.

This can also be set per connection using the Connection URL options.

javax.net.ssl.keyStorePasswordstringjvm default

Specifies the key store password.

This can also be set per connection using the Connection URL options.

javax.net.ssl.trustStorestringjvm default

Specifies the trust store path.

This can also be set per connection using the Connection URL options.

javax.net.ssl.trustStorePasswordstringjvm default

Specifies the trust store password.

This can also be set per connection using the Connection URL options.

[a] Qpid allows you to have per connection key and trust stores if required. If specified per connection, the JVM arguments are ignored.