<?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">
      <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>
