The following system properties affect the behaviour of the 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 10.1. System Properties Affecting Connection Behaviour
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.amqp.version | string | 0-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.heartbeat | int | 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
|
ignore_setclientID | boolean | false | If 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. |
qpid.connection_ssl_verify_hostname | boolean | true | This property is used to turn on/off broker host name verification on SSL negotiation
if SSL transport is used. It is set to 'true' by default.
Setting this property to 'false' will disable that check and allow you to ignore host name errors. |
qpid.connection_compress_messages | Boolean | false | Controls whether the client will compress messages before they they are sent. |
qpid.message_compression_threshold_size | Integer | 102400 | The payload size beyond which the client will start to compress message payloads. |
Table 10.2. Config Options For Session Behaviour
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.dest_syntax | String | ADDR | Addressing syntax: ADDR (Address format) or BURL (Binding URL) |
max_prefetch | int | 500 | 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_message | boolean | false | 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.dispatcher | boolean | false | 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 10.3. Config Options For Consumer Behaviour
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.declare_exchanges | Boolean | true | 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_queues | Boolean | true | 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.bind_queues | Boolean | true | If true, creating a consumer will also bind the queue to the to the exchange using the routing key as a binding key. The exchange name, queue name and routing key are taken from the Binding URL associated with the Destination. |
qpid.reject.behaviour | String | NORMAL | Used with the maximum delivery count feature. See Section 5.6.3, “Maximum Delivery Count” for details. |
sync_client_ack | boolean | true |
If set If This can also be set per connection using the Connection URL options. |
Table 10.4. Config Options For Producer Behaviour
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.default_mandatory | Boolean | True | 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_topic | Boolean | False | 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_immediate | Boolean | False | 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_failure | Long | 60000 | Used with Section 5.5.4, “Flow Control”. The amount of time (in milliseconds) to wait before timing out. |
qpid.flow_control_wait_notify_period | Long | 5000 | Used with Section 5.5.4, “Flow Control”. The frequency at which the log message informing that the producer is flow controlled . |
sync_publish | string | "" (disabled) |
If 'all' is set then messages will be sent synchronously. This can also be set per connection using the Connection URL options. |
Table 10.5. Config Options For Threading
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.thread_factory | string | org.apache.qpid.thread.DefaultThreadFactory | Specifies the thread factory to use. If using a real
time JVM, you need to set the above property to
|
qpid.rt_thread_priority | int | 20 | Specifies the priority (1-99) for Real time threads created by the real time thread factory. |
Table 10.6. Config Options For I/O
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.sync_op_timeout | long | 60000 | The length of time (in milliseconds) to wait for a synchronous operation to complete. For compatibility with older clients,
the synonym |
qpid.tcp_nodelay | boolean | true |
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
option For compatibility with older clients, the synonym
|
qpid.send_buffer_size | integer | 65535 |
Sets the SO_SNDBUF property of the underlying socket. Added in Qpid 0.16. For compatibility with older clients, the synonym
|
qpid.receive_buffer_size | integer | 65535 |
Sets the SO_RCVBUF property of the underlying socket. Added in Qpid 0.16. For compatibility with older clients, the synonym
|
qpid.failover_method_timeout | long | 60000 |
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 10.7. Config Options For Security
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.sasl_mechs | string | Restriction on the SASL mechanisms which can be used. More than one could be specified as a space separated list. We currently support the following mechanisms: PLAIN GSSAPI EXTERNAL SCRAM-SHA-256 SCRAM-SHA-1 XOAUTH2 CRAM-MD5 XOAUTH2 ANONYMOUS. This can also be set per connection using the Connection URL options. | |
qpid.sasl_protocol | string | AMQP | When using GSSAPI as the SASL mechanism,
This can also be set per connection using the Connection URL options. |
qpid.sasl_server_name | string | localhost | When using GSSAPI as the SASL mechanism,
This can also be set per connection using the Connection URL options. |
Table 10.8. Config Options For Security - Standard JVM properties needed when using GSSAPI as the SASL mechanism.[a]
Property Name | Type | Default Value | Description |
---|---|---|---|
javax.security.auth.useSubjectCredsOnly | boolean | true | If set to 'false', forces the SASL GASSPI client to obtain the kerberos credentials explicitly instead of obtaining from the "subject" that owns the current thread. |
java.security.auth.login.config | string | Specifies the jass configuration file.
Here is the sample myjas.conf JASS configuration file: com.sun.security.jgss.initiate { com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true; }; | |
[a] Please refer to the Java security documentation for a complete understanding of the above properties. |
Table 10.9. Config Options For Security - Using SSL for securing connections or using EXTERNAL as the SASL mechanism.
Property Name | Type | Default Value | Description |
---|---|---|---|
qpid.ssl_timeout | long | 60000 | Timeout value used by the Java SSL engine when waiting on operations. |
qpid.ssl.KeyManagerFactory.algorithm | string | - |
The key manager factory algorithm name. If not set, defaults to the
value returned from the Java runtime call
For compatibility with older clients, the synonym
|
qpid.ssl.TrustManagerFactory.algorithm | string | - |
The trust manager factory algorithm name. If not set, defaults to the
value returned from the Java runtime call
For compatibility with older clients, the synonym
|
Table 10.10. Config Options For Security - Standard JVM properties needed when Using SSL for securing connections or using EXTERNAL as the SASL mechanism.[a]
Property Name | Type | Default Value | Description |
---|---|---|---|
javax.net.ssl.keyStore | string | jvm default | Specifies the key store path. This can also be set per connection using the Connection URL options. |
javax.net.ssl.keyStorePassword | string | jvm default | Specifies the key store password. This can also be set per connection using the Connection URL options. |
javax.net.ssl.trustStore | string | jvm default | Specifies the trust store path. This can also be set per connection using the Connection URL options. |
javax.net.ssl.trustStorePassword | string | jvm 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. |
Apache Qpid, Messaging built on AMQP; Copyright © 2015 The Apache Software Foundation; Licensed under the Apache License, Version 2.0; Apache Qpid, Qpid, Qpid Proton, Proton, Apache, the Apache feather logo, and the Apache Qpid project logo are trademarks of The Apache Software Foundation; All other marks mentioned may be trademarks or registered trademarks of their respective owners