| <?xml version="1.0"?> |
| <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" |
| "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" |
| [ |
| <!ENTITY % entities SYSTEM "commonEntities.xml"> |
| %entities; |
| ]> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| |
| <chapter id="JMS-Client-0-8-System-Properties"> |
| <title>System Properties</title> |
| <para>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 <link linkend="JMS-Client-0-8-Connection-URL" |
| >Connection URL</link> options allowing the option to be controlled at the level of the |
| Connection.</para> |
| |
| <table pgwide="1"> |
| <title>System Properties Affecting Connection Behaviour</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>qpid.amqp.version</entry> |
| <entry>string</entry> |
| <entry>0-10</entry> |
| <entry><para>Sets the AMQP version to be used - currently supports one of |
| {0-8,0-9,0-91,0-10}.</para><para>The client will begin negotiation at |
| the specified version and only negotiate downwards if the Broker does |
| not support the specified version.</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-Heartbeat"> |
| <entry>qpid.heartbeat</entry> |
| <entry>int</entry> |
| <entry><para>Defaults to the heartbeat value suggested by the Broker, if |
| any.</para></entry> |
| <entry>Frequency of heartbeat messages (in seconds). A value of 0 disables |
| heartbeating. <para>Two consecutive missed heartbeats will result in the |
| connection timing out.</para><para>This can also be set per connection |
| using the <link |
| linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-Heartbeat" |
| >Connection URL</link> options.</para><para>For compatibility with |
| old client configuration, the synonym |
| <varname>amqj.heartbeat.delay</varname> is supported.</para></entry> |
| </row> |
| <row> |
| <entry>ignore_setclientID</entry> |
| <entry>boolean</entry> |
| <entry>false</entry> |
| <entry>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. <para>Setting this property to 'true' will disable that check and |
| allow you to set a client ID of your choice later on.</para></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| |
| <table pgwide="1"> |
| <title>Config Options For Session Behaviour</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row id="JMS-Client-0-8-System-Properties-DestSyntax"> |
| <entry>qpid.dest_syntax</entry> |
| <entry>String</entry> |
| <entry>ADDR</entry> |
| <entry><para>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.</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-Maxprefetch"> |
| <entry>max_prefetch</entry> |
| <entry>int</entry> |
| <entry>500</entry> |
| <entry><para>Maximum number of pre-fetched messages per Session. This can also |
| be defaulted for sessions created on a particular connection using the |
| <link |
| linkend="JMS-Client-0-8-Connection-URL-ConnectionOptions-Maxprefetch" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| |
| |
| <!-- 0-10 |
| <row> |
| <entry>qpid.session.command_limit</entry> |
| <entry>int</entry> |
| <entry>65536</entry> |
| <entry>Limits the # of unacked commands</entry> |
| </row> |
| --> |
| <!-- 0-10 |
| <row> |
| <entry>qpid.session.byte_limit</entry> |
| <entry>int</entry> |
| <entry>1048576</entry> |
| <entry>Limits the # of unacked commands in terms of bytes</entry> |
| </row> |
| --> |
| <row> |
| <entry>qpid.use_legacy_map_message</entry> |
| <entry>boolean</entry> |
| <entry>false</entry> |
| <entry><para>If set will use the old map message encoding. By default the Map |
| messages are encoded using the 0-10 map encoding.</para><para>This can |
| also be set per connection using the <link |
| linkend="JMS-Client-0-8-Connection-URL-ConnectionOptions-UseLegacyMap" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| |
| <row> |
| <entry>qpid.jms.daemon.dispatcher</entry> |
| <entry>boolean</entry> |
| <entry>false</entry> |
| <entry><para>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.</para></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1"> |
| <title>Config Options For Consumer Behaviour</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row id="JMS-Client-0-8-System-Properties-DeclareExchanges"> |
| <entry>qpid.declare_exchanges</entry> |
| <entry>Boolean</entry> |
| <entry>true</entry> |
| <entry><para>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. |
| </para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-DeclareQueues"> |
| <entry>qpid.declare_queues</entry> |
| <entry>Boolean</entry> |
| <entry>true</entry> |
| <entry><para>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.</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-RejectBehaviour"> |
| <entry>qpid.reject.behaviour</entry> |
| <entry>String</entry> |
| <entry>NORMAL</entry> |
| <entry><para>Used with the maximum delivery count feature. See <xref |
| linkend="JMS-Client-0-8-Client-Understanding-MessageConsumer-MaximumDeliveryCount" |
| /> for details.</para></entry> |
| </row> |
| |
| <!-- 0-10 |
| <row> |
| <entry>qpid.session.max_ack_delay</entry> |
| <entry>long</entry> |
| <entry>1000 (ms)</entry> |
| <entry><para>Timer interval to flush message acks in buffer when using AUTO_ACK |
| and DUPS_OK.</para> |
| <para>When using the above ack modes, message acks are batched and sent if |
| one of the following conditions are met (which ever happens first). <itemizedlist> |
| <listitem> |
| <para>When the ack timer fires.</para> |
| </listitem> |
| <listitem> |
| <para>if un_acked_msg_count > max_prefetch/2.</para> |
| </listitem> |
| </itemizedlist> |
| </para> |
| <para>The ack timer can be disabled by setting it to 0.</para> |
| </entry> |
| </row> |
| --> |
| <!-- 0-10 |
| <row> |
| <entry>sync_ack</entry> |
| <entry>boolean</entry> |
| <entry>false</entry> |
| <entry><para>If set, each message will be acknowledged synchronously. When using |
| AUTO_ACK mode, you need to set this to "true", in order to get the |
| correct behaviour as described by the JMS spec.</para><para>This is set |
| to false by default for performance reasons, therefore by default |
| AUTO_ACK behaves similar to DUPS_OK.</para><para>This can also be set |
| per connection using the <link linkend="section-jms-connection-url" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| --> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1"> |
| <title>Config Options For Producer Behaviour</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row id="JMS-Client-0-8-System-Properties-DefaultMandatory"> |
| <entry>qpid.default_mandatory</entry> |
| <entry>Boolean</entry> |
| <entry>True</entry> |
| <entry><para>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 <xref |
| linkend="JMS-Client-0-8-Client-Understanding-MessageProducer-MandatoryMessage" |
| /> for more details.</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-DefaultMandatoryTopic"> |
| <entry>qpid.default_mandatory_topic</entry> |
| <entry>Boolean</entry> |
| <entry>False</entry> |
| <entry><para>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 <xref |
| linkend="JMS-Client-0-8-Client-Understanding-MessageProducer-MandatoryMessage" |
| /> for more details..</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-DefaultImmediate"> |
| <entry>qpid.default_immediate</entry> |
| <entry>Boolean</entry> |
| <entry>False</entry> |
| <entry><para>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 <xref |
| linkend="JMS-Client-0-8-Client-Understanding-MessageProducer-ImmediateMessage" |
| /> for more details.</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-FlowControlWaitFailure"> |
| <entry>qpid.flow_control_wait_failure</entry> |
| <entry>Long</entry> |
| <entry>60000</entry> |
| <entry><para>Used with <xref |
| linkend="JMS-Client-0-8-Client-Understanding-MessageProducer-FlowControl" |
| />. The amount of time (in milliseconds) to wait before timing |
| out.</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-FlowControlWaitNotifyPeriod"> |
| <entry>qpid.flow_control_wait_notify_period</entry> |
| <entry>Long</entry> |
| <entry>5000</entry> |
| <entry><para>Used with <xref |
| linkend="JMS-Client-0-8-Client-Understanding-MessageProducer-FlowControl" |
| />. The frequency at which the log message informing that the producer |
| is flow controlled .</para></entry> |
| </row> |
| <!-- |
| <row> |
| <entry>sync_publish</entry> |
| <entry>string</entry> |
| <entry>"" (disabled)</entry> |
| <entry><para>If one of {persistent|all} is set then persistent messages or all |
| messages will be sent synchronously.</para><para>This can also be set |
| per connection using the <link linkend="section-jms-connection-url" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| --> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1"> |
| <title>Config Options For Threading</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>qpid.thread_factory</entry> |
| <entry>string</entry> |
| <entry>org.apache.qpid.thread.DefaultThreadFactory</entry> |
| <entry><para>Specifies the thread factory to use.</para><para>If using a real |
| time JVM, you need to set the above property to |
| <varname>org.apache.qpid.thread.RealtimeThreadFactory</varname>.</para></entry> |
| </row> |
| |
| <row> |
| <entry>qpid.rt_thread_priority</entry> |
| <entry>int</entry> |
| <entry>20</entry> |
| <entry><para>Specifies the priority (1-99) for Real time threads created by the |
| real time thread factory.</para></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1"> |
| <title>Config Options For I/O</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>qpid.transport</entry> |
| <entry>string</entry> |
| <entry>org.apache.qpid.transport.network.io.IoNetworkTransport</entry> |
| <entry><para>The transport implementation to be used.</para><para>A user could |
| specify an alternative transport mechanism that implements the interface |
| <varname>org.apache.qpid.transport.network.OutgoingNetworkTransport</varname>.</para></entry> |
| </row> |
| <row id="JMS-Client-0-8-System-Properties-SyncOpTimeout"> |
| <entry>qpid.sync_op_timeout</entry> |
| <entry>long</entry> |
| <entry>60000</entry> |
| <entry><para>The length of time (in milliseconds) to wait for a synchronous |
| operation to complete.</para><para>For compatibility with older clients, |
| the synonym <varname>amqj.default_syncwrite_timeout</varname> is |
| supported.</para></entry> |
| </row> |
| <row> |
| <entry>qpid.tcp_nodelay</entry> |
| <entry>boolean</entry> |
| <entry>true</entry> |
| <entry> |
| <para>Sets the TCP_NODELAY property of the underlying socket. The default |
| was changed to true as of Qpid 0.14.</para> |
| <para>This can also be set per connection using the Connection URL broker |
| option<link |
| linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-TcpNoDelay" |
| ><literal>tcp_nodelay</literal>.</link> options.</para> |
| <para>For compatibility with older clients, the synonym |
| <varname>amqj.tcp_nodelay</varname> is supported.</para> |
| </entry> |
| </row> |
| <row> |
| <entry>qpid.send_buffer_size</entry> |
| <entry>integer</entry> |
| <entry>65535</entry> |
| <entry> |
| <para>Sets the SO_SNDBUF property of the underlying socket. Added in Qpid |
| 0.16.</para> |
| <para>For compatibility with older clients, the synonym |
| <varname>amqj.sendBufferSize</varname> is supported.</para> |
| </entry> |
| </row> |
| <row> |
| <entry>qpid.receive_buffer_size</entry> |
| <entry>integer</entry> |
| <entry>65535</entry> |
| <entry> |
| <para>Sets the SO_RCVBUF property of the underlying socket. Added in Qpid |
| 0.16.</para> |
| <para>For compatibility with older clients, the synonym |
| <varname>amqj.receiveBufferSize</varname> is supported.</para> |
| </entry> |
| </row> |
| <row> |
| <entry>qpid.failover_method_timeout</entry> |
| <entry>long</entry> |
| <entry>60000</entry> |
| <entry> |
| <para>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.</para> |
| <para>It is only applicable for AMQP 0-8/0-9/0-9-1 clients.</para> |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <!-- These are all 0-10 related |
| <table pgwide="1"> |
| <title>Config Options For Security</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| |
| <row> |
| <entry>qpid.sasl_mechs</entry> |
| <entry>string</entry> |
| <entry>PLAIN</entry> |
| <entry><para>The SASL mechanism to be used. More than one could be specified as |
| a comma separated list.</para><para>We currently support the following |
| mechanisms {PLAIN | GSSAPI | EXTERNAL}.</para><para>This can also be set |
| per connection using the <link linkend="JMS-Client-0-8-Connection-URL" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| |
| <row> |
| <entry>qpid.sasl_protocol</entry> |
| <entry>string</entry> |
| <entry>AMQP</entry> |
| <entry><para>When using GSSAPI as the SASL mechanism, |
| <varname>sasl_protocol</varname> must be set to the principal for |
| the qpidd broker, e.g. <varname>qpidd</varname>.</para><para>This can |
| also be set per connection using the <link |
| linkend="JMS-Client-0-8-Connection-URL">Connection URL</link> |
| options.</para></entry> |
| </row> |
| <row> |
| <entry>qpid.sasl_server_name</entry> |
| <entry>string</entry> |
| <entry>localhost</entry> |
| <entry><para>When using GSSAPI as the SASL mechanism, |
| <varname>sasl_server</varname> must be set to the host for the SASL |
| server, e.g. <varname>example.com</varname>.</para><para>This can also |
| be set per connection using the <link |
| linkend="JMS-Client-0-8-Connection-URL">Connection URL</link> |
| options.</para></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1"> |
| <title>Config Options For Security - Standard JVM properties needed when using GSSAPI as the |
| SASL mechanism.<footnote> |
| <para>Please refer to the Java security documentation for a complete understanding |
| of the above properties.</para> |
| </footnote></title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>javax.security.auth.useSubjectCredsOnly</entry> |
| <entry>boolean</entry> |
| <entry>true</entry> |
| <entry><para>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.</para></entry> |
| </row> |
| |
| <row> |
| <entry>java.security.auth.login.config</entry> |
| <entry>string</entry> |
| <entry/> |
| <entry><para>Specifies the jass configuration |
| file.</para><para><varname>Ex-Djava.security.auth.login.config=myjas.conf</varname> |
| </para><para>Here is the sample myjas.conf JASS configuration file: <programlisting><![CDATA[ |
| |
| com.sun.security.jgss.initiate { |
| com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true; |
| }; |
| |
| ]]></programlisting></para></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| --> |
| <table pgwide="1"> |
| <title>Config Options For Security - Using SSL for securing connections or using EXTERNAL as |
| the SASL mechanism.</title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>qpid.ssl_timeout</entry> |
| <entry>long</entry> |
| <entry>60000</entry> |
| <entry><para>Timeout value used by the Java SSL engine when waiting on |
| operations.</para></entry> |
| </row> |
| |
| <row> |
| <entry>qpid.ssl.KeyManagerFactory.algorithm</entry> |
| <entry>string</entry> |
| <entry>-</entry> |
| <entry> |
| <para>The key manager factory algorithm name. If not set, defaults to the |
| value returned from the Java runtime call |
| <literal>KeyManagerFactory.getDefaultAlgorithm()</literal></para> |
| <para>For compatibility with older clients, the synonym |
| <varname>qpid.ssl.keyStoreCertType</varname> is supported.</para> |
| </entry> |
| </row> |
| |
| <row> |
| <entry>qpid.ssl.TrustManagerFactory.algorithm</entry> |
| <entry>string</entry> |
| <entry>-</entry> |
| <entry> |
| <para>The trust manager factory algorithm name. If not set, defaults to the |
| value returned from the Java runtime call |
| <literal>TrustManagerFactory.getDefaultAlgorithm()</literal></para> |
| <para>For compatibility with older clients, the synonym |
| <varname>qpid.ssl.trustStoreCertType</varname> is supported.</para> |
| </entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1"> |
| <title>Config Options For Security - Standard JVM properties needed when Using SSL for |
| securing connections or using EXTERNAL as the SASL mechanism.<footnote> |
| <para>Qpid allows you to have per connection key and trust stores if required. If |
| specified per connection, the JVM arguments are ignored.</para> |
| </footnote></title> |
| <tgroup cols="4"> |
| <thead> |
| <row> |
| <entry>Property Name</entry> |
| <entry>Type</entry> |
| <entry>Default Value</entry> |
| <entry>Description</entry> |
| </row> |
| </thead> |
| <tbody> |
| <row> |
| <entry>javax.net.ssl.keyStore</entry> |
| <entry>string</entry> |
| <entry>jvm default</entry> |
| <entry><para>Specifies the key store path.</para><para>This can also be set per |
| connection using the <link linkend="JMS-Client-0-8-Connection-URL" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| |
| <row> |
| <entry>javax.net.ssl.keyStorePassword</entry> |
| <entry>string</entry> |
| <entry>jvm default</entry> |
| <entry><para>Specifies the key store password.</para><para>This can also be set |
| per connection using the <link linkend="JMS-Client-0-8-Connection-URL" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| |
| <row> |
| <entry>javax.net.ssl.trustStore</entry> |
| <entry>string</entry> |
| <entry>jvm default</entry> |
| <entry><para>Specifies the trust store path.</para><para>This can also be set |
| per connection using the <link linkend="JMS-Client-0-8-Connection-URL" |
| >Connection URL</link> options.</para></entry> |
| </row> |
| |
| <row> |
| <entry>javax.net.ssl.trustStorePassword</entry> |
| <entry>string</entry> |
| <entry>jvm default</entry> |
| <entry><para>Specifies the trust store password.</para><para>This can also be |
| set per connection using the <link |
| linkend="JMS-Client-0-8-Connection-URL">Connection URL</link> |
| options.</para></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| </chapter> |