<?xml version="1.0"?>
<!--

 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.

-->

<appendix xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="Java-Broker-Appendix-System-Properties">
  <title>System Properties</title>
  <para>The following table describes the Java system properties used by the Broker to control
    various optional behaviours.</para>
  <para>The preferred method of enabling these system properties is using the <link linkend="Java-Broker-Appendix-Environment-Variables-Qpid-Opts"><literal>QPID_OPTS</literal></link> environment variable described in the previous
    section.</para>
  <table pgwide="1">
    <title>System properties</title>
    <tgroup cols="3">
      <colspec colnum="1" colname="systemproperty" colwidth="1*"/>
      <colspec colnum="2" colname="default" colwidth="1*"/>
      <colspec colnum="3" colname="purpose" colwidth="1*"/>
      <thead>
        <row>
          <entry>System property</entry>
          <entry>Default</entry>
          <entry>Purpose</entry>
        </row>
      </thead>
      <tbody>
        <row xml:id="Java-Broker-Appendix-System-Properties-Broker-Heartbeat-Timeout-Factor">
          <entry>qpid.broker_heartbeat_timeout_factor</entry>
          <entry>2</entry>
          <entry>Factor to determine the maximum length of that may elapse between heartbeats being
            received from the peer before a connection is deemed to have been broken.</entry>
        </row>
        <row xml:id="Java-Broker-Appendix-System-Properties-Broker-Status-Updates">
          <entry>qpid.broker_status_updates</entry>
          <entry>true</entry>
          <entry>
            <para>If set true, the Broker will produce operational logging messages.</para>
          </entry>
        </row>
        <row xml:id="Java-Broker-Appendix-System-Properties-Broker-Disabled-Features">
          <entry>qpid.broker_disabled_features</entry>
          <entry>none</entry>
          <entry>
            <para>Allows optional Broker features to be disabled. Currently understood feature
              names are: <literal>qpid.jms-selector</literal></para>
            <para>Feature names should be comma separated.</para>
          </entry>
        </row>
      </tbody>
    </tgroup>
  </table>
</appendix>
