# System Properties

## Explanation of System properties used in Qpid

This page documents the various System Properties that are currently used in the Qpid Java code base.

### Client Properties

STRICT_AMQP
  Type

    Boolean

  Default

    FALSE

  This forces the client to only send AMQP compliant frames. This will disable a number of JMS features.

  Features disabled by STRICT_AMQP

  - Queue Browser

  - Message Selectors

  - Durable Subscriptions

  - Session Recover may result in duplicate message delivery

  - Destination validation, so no InvalidDestinationException will be thrown

  This is associated with property

STRICT_AMQP_FATAL
  Type

    Boolean

  Default

    FALSE

  This will cause any attempt to utilise an enhanced feature to throw and UnsupportedOperationException. When set to false then the exception will not occur but the feature will be disabled.

  e.g. The Queue Browser will always show no messages. Any message selector will be removed.

IMMEDIATE_PREFETCH
  Type

    Boolean

  Default

    FALSE

  The default with AMQP is to start prefetching messages. However, with certain 3rd party Java tools, such as Mule this can cause a problem. Mule will create a consumer but never consume from it so any any prefetched messages will be stuck until that session is closed. This property is used to re-instate the default AMQP behaviour. The default Qpid behaviour is to prevent prefetch occurring, by starting the connection Flow Controlled, until a request for a message is made on the consumer either via a receive() or setting a message listener.

qpid.sync_op_timeout
  Type

    long

  Default

    60000

  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.

amq.dynamicsaslregistrar.properties
  Type

    String

  Default

    org/apache/qpid/client/security/DynamicSaslRegistrar.properties

  The name of the SASL configuration properties file.

amqj.heartbeat.timeoutFactor
  Type

    float

  Default

    2.0

  The factor used to get the timeout from the delay between heartbeats

amqj.tcp_nodelay
  Type

    Boolean

  Default

    TRUE

  Disable Nagle's algorithm on the TCP connection.

amqj.protocol.logging.level
  Type

    Boolean

  Default

    null

  If set this will turn on protocol logging on the client.

jboss.host

  Used by the JBossConnectionFactoryInitialiser to specify the host to connect to perform JNDI lookups.

jboss.port

  Used by the JBossConnectionFactoryInitialiser to specify the port to connect to perform JNDI lookups.

amqj.MaximumStateWait
  Default

    30000

  Used to set the maximum time the State Manager should wait before timing out a frame wait.

### Management Properties

security
  Default

    null

  String representing the Security level to be used to on the connection to the broker. The null default results in no security or PLAIN. When used with jmxconnector 'javax.management.remote.jmxmp.JMXMPConnector' a security value of 'CRAM-MD5' will result in all communication to the broker being encrypted.

jmxconnector
  Default

    null

  String representing the JMXConnector class used to perform the connection to the broker. The null default results in the standard JMX connector. Utilising 'javax.management.remote.jmxmp.JMXMPConnector' and security 'CRAM-MD5' will result in all communication to the broker being encrypted.

timeout
  Default

    5000

  Long value representing the milli seconds before connection to the broker should timeout.

### Properties used in Examples

archivepath

  Used in `FileMessageDispatcher`. This properties specifies the directory to move payload file(s) to archive location as no error