# Class ConnectionConfiguration

java.lang.Object
com.sun.messaging.ConnectionConfiguration

public class ConnectionConfiguration extends Object
The `ConnectionConfiguration` class contains OpenMQ specific connection configuration property names and special values.

See Also:
  - `com.sun.messaging.ConnectionFactory`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `imqAbortOnPingAckTimeout`
  If this property is set to true, the MQ Client Runtime will abort the connection to the MQ broker when timeout, as specified by `imqPingAckTimeout`, in waiting for a 'ping' reply or any data sent from the MQ broker since last 'ping', then the MQ Client Runtime will perform actions as if the connection is broken.
  `static final String`
  `imqAckOnAcknowledge`
  This property is used to control the reliability of message acknowledgement for every message that is consumed by a MessageConsumer.
  `static final String`
  `imqAckOnProduce`
  This property is used to control the reliability of every message that is produced by a MessageProducer.
  `static final String`
  `imqAckTimeout`
  This property holds the maximum time, in milliseconds, that a OpenMQ Client Application will wait before throwing a JMSException when awaiting an acknowledgement from the OpenMQ Message Service.
  `static final String`
  `imqAddressList`
  This property holds the address list that will be used to connect to the OpenMQ Message Service.
  `static final String`
  `imqAddressListBehavior`
  This property determines how OpenMQ will select entries from the `imqAddressList` property to use when making a connection to the OpenMQ Message Service.
  `static final String`
  `imqAddressListIterations`
  This property holds the number of times that OpenMQ will iterate through `imqAddressList` when connecting to the OpenmMQ Service.
  `static final String`
  `imqAsyncSendCompletionWaitTimeout`
  This property holds the minimum time, in milliseconds, that the MQ client runtime will wait for an asynchronous send to complete before calling the CompletionListener's onException method with timed out exception
  `static final String`
  `imqBrokerHostName`
  This property holds the hostname that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.
  `static final String`
  `imqBrokerHostPort`
  This property holds the Primary Port number that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.
  `static final String`
  `imqBrokerServiceName`
  This property holds the connection service name that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.
  `static final String`
  `imqBrokerServicePort`
  This property holds the actual port number that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.
  `static final String`
  `imqConfiguredClientID`
  This property holds the value of an administratively configured ClientID.
  `static final String`
  `imqConnectionFlowCount`
  This property manages the number of JMS messages that will flow from the OpenMQ Message Service to the MQ Client between each 'resume flow' notification from the Client to the Message Service to receive additional JMS messages.
  `static final String`
  `imqConnectionFlowLimit`
  This property specifies the number of uncomsumed JMS messages that a OpenMQ Client can hold, above which the MQ Client will refrain from sending a 'resume flow' notification to the OpenMQ Message Service.
  `static final String`
  `imqConnectionFlowLimitEnabled`
  This property indicates whether the OpenMQ Client should limit the flow of JMS messages from the OpenMQ Message Service using the number of messages specified in `imqConnectionFlowLimit`.
  `static final String`
  `imqConnectionHandler`
  This property holds the name of the class that will be used to handle the connection to the OpenMQ Message Service and is required when the value of the `imqConnectionType` property is set to `...`
  `static final String`
  `imqConnectionType`
  This property holds the connection type used to connect to the OpenMQ Message Service.
  `static final String`
  `imqConnectionURL`
  This property holds the URL that will be used when connecting to the OpenMQ Message Service using the HTTP ConnectionHandler class provided with OpenMQ.
  `static final String`
  `imqConsumerFlowLimit`
  This property specifies the upper limit of the number of messages per consumer that will be delivered and buffered in the MQ client.
  `static final String`
  `imqConsumerFlowLimitPrefetch`
  When this property is set to false, there will be no prefetch next message (except the first message) from broker to a consumer, and consumer flow control properties `imqConsumerFlowLimit` and `imqConsumerFlowThreshold` will be ignored.
  `static final String`
  `imqConsumerFlowThreshold`
  This property controls when JMS message delivery will resume to consumers that have had their message delivery stopped due to the number of messages buffered in the MQ client exceeding the limit set by `imqConsumerFlowLimit` and is expressed as a percentage of `imqConsumerFlowLimit` .
  `static final String`
  `imqDefaultPassword`
  This property holds the default password that will be used to authenticate with the OpenMQ Message Service.
  `static final String`
  `imqDefaultUsername`
  This property holds the default username that will be used to authenticate with the OpenMQ Message Service.
  `static final String`
  `imqDisableSetClientID`
  This property indicates whether the OpenMQ Client Application is prevented from changing the ClientID using the `setClientID()` method in `jakarta.jms.Connection`.
  `static final String`
  `imqEnableSharedClientID`
  This property indicates whether the client identifier requested and used by this connection is to be acquired in 'shared' mode.
  `static final String`
  `imqJMSDeliveryMode`
  This property holds the administratively configured value of the JMS Message Header `JMSDeliveryMode`.
  `static final String`
  `imqJMSExpiration`
  This property holds the administratively configured value of the JMS Message Header `JMSExpiration`.
  `static final String`
  `imqJMSPriority`
  This property holds the administratively configured value of the JMS Message Header `JMSPriority`.
  `static final String`
  `imqKeyStore`
  This property specifies the key store location
  `static final String`
  `imqKeyStorePassword`
  This property specifies the key store password.
  `static final String`
  `imqLoadMaxToServerSession`
  This property indicates how the OpenMQ ConnectionConsumer should load messages into a ServerSession's JMS Session.
  `static final String`
  `imqOnMessageExceptionRedeliveryAttempts`
  For AUTO_ACKNOWLEDGE and DUPS_OK_ACKNOWLEDGE, maximum redelivery attempts (>= 1) when a jakarta.jms.MessageListener.onMessage() throws RuntimeException.
  `static final String`
  `imqOnMessageExceptionRedeliveryIntervals`
  For AUTO_ACKNOWLEDGE and DUPS_OK_ACKNOWLEDGE, the interval in milliseconds for each subsequent redelivery attempt after first attempt when a jakarta.jms.MessageListener.onMessage() throws RuntimeException.
  `static final String`
  `imqOverrideJMSDeliveryMode`
  This property indicates whether OpenMQ should override the JMS Message Header `JMSDeliveryMode` which can be set using the JMS APIs.
  `static final String`
  `imqOverrideJMSExpiration`
  This property indicates whether OpenMQ should override the JMS Message Header `JMSExpiration` which can be set using the JMS APIs.
  `static final String`
  `imqOverrideJMSHeadersToTemporaryDestinations`
  This property indicates whether OpenMQ should override the JMS Message Headers on Messages that are sent to Temporary Destinations.
  `static final String`
  `imqOverrideJMSPriority`
  This property indicates whether OpenMQ should override the JMS Message Header `JMSPriority` which can be set using the JMS APIs.
  `static final String`
  `imqPingAckTimeout`
  When `imqAbortOnPingAckTimeout` is true, this property specifies maximum time, in milliseconds, that MQ Client Runtime will wait for a ping reply or any data sent from the MQ broker since last 'ping'.
  `static final String`
  `imqPingInterval`
  This property specifies the 'ping' interval, in seconds, between successive attempts made by an MQ Connection to verify that its physical connection to the MQ broker is still functioning properly.
  `static final String`
  `imqPortMapperSoTimeout`
  This property defines port mapper client socket read timeout, in milliseconds.
  `static final String`
  `imqQueueBrowserMaxMessagesPerRetrieve`
  This property holds the maximum number of messages that will be retrieved at one time when a OpenMQ Client Application is enumerating through the messages on a Queue using a QueueBrowser.
  `static final String`
  `imqQueueBrowserRetrieveTimeout`
  This property holds the maximum time, in milliseconds, that a OpenMQ Client Application will wait before throwing a NoSuchElementException when retrieving elements from a QueueBrowser Enumeration.
  `static final String`
  `imqReconnectAttempts`
  This property holds the number of reconnect attempts for each address in the `imqAddressList` property that the OpenMQ Client Application will make before moving on the next address in `imqAddressList`.
  `static final String`
  `imqReconnectEnabled`
  This property indicates whether the OpenMQ Client Application will attempt to reconnect to the OpenMQ Message Service upon losing its connection.
  `static final String`
  `imqReconnectInterval`
  This property specifies the interval, in milliseconds, between successive reconnect attempts made by the MQ Client Application to the OpenMQ Message Service.
  `static final String`
  `imqSetJMSXAppID`
  This property indicates whether OpenMQ should set the JMSXAppID property on produced messages.
  `static final String`
  `imqSetJMSXConsumerTXID`
  This property indicates whether OpenMQ should set the JMSXConsumerTXID property on consumed messages.
  `static final String`
  `imqSetJMSXProducerTXID`
  This property indicates whether OpenMQ should set the JMSXProducerTXID property on produced messages.
  `static final String`
  `imqSetJMSXRcvTimestamp`
  This property indicates whether OpenMQ should set the JMSXRcvTimestamp property on consumed messages.
  `static final String`
  `imqSetJMSXUserID`
  This property indicates whether OpenMQ should set the JMSXUserID property on produced messages.
  `static final String`
  `imqSocketConnectTimeout`
  This property defines the socket timeout, in milliseconds, used when a TCP connection is made to the broker.
  `static final String`
  `imqSSLIsHostTrusted`
  This property indicates whether the host is trusted when connecting to the OpenMQ Message Service using the TLS ConnectionHandler class provided with OpenMQ.
  `static final String`
  `imqSSLProviderClassname`
  This property holds the TLS Provider Classname that will be used when connecting to the OpenMQ Message Service using the TLS ConnectionHandler class provided with OpenMQ.
  `static final String`
  `JMSDeliveryMode_NON_PERSISTENT`
  This constant is used to set the value of `imqJMSDeliveryMode` to NON_PERSISTENT when the JMSDeliveryMode JMS Message Header is administratively configured.
  `static final String`
  `JMSDeliveryMode_PERSISTENT`
  This constant is used to set the value of `imqJMSDeliveryMode` to PERSISTENT when the JMSDeliveryMode JMS Message Header is administratively configured.

- ## Method Summary

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### imqAddressList

    public static final String imqAddressList
    This property holds the address list that will be used to connect to the OpenMQ Message Service.

    Message Server Address Syntax

    The syntax for specifying a message server address is as follows:

    `scheme://address_syntax`

    where the `scheme` and `address_syntax` are described in the folowing table.

    scheme and address_syntax for a message server address
    Scheme | Connection Service | Description | Syntax
    --- | --- | --- | ---
    `mq` | `jms and ssljms` | The MQ Port Mapper at the specified host and port will handle the connection request, dynamically assigning a port based on the specified connection service. Once the port number is known, MQ makes the connection. | `[hostName][:port][/serviceName]` Defaults (for jms service only): `hostName = localhost port = 7676 serviceName = jms`
    `mqtcp` | `jms` | MQ makes a direct tcp connection to the specified host and port to establish a connection. | `hostName:port/jms`
    `mqssl` | `ssljms` | MQ makes a direct, secure ssl connection to the specified host and port to establish a connection. | `hostName:port/ssljms`
    `htttp` | `httpjms` | MQ makes a direct HTTP connection to the specified MQ tunnel servlet URL. (The broker must be configured to access the tunnel servlet.) | `HTTPtunnelServletURL`
    `htttps` | `httpsjms` | MQ makes a direct HTTPS connection to the specified MQ tunnel servlet URL. (The broker must be configured to access the tunnel servlet.) | `HTTPStunnelServletURL`
    `mqws` | `wsjms` | MQ makes a direct WebSocket connection to the specified host and port to establish a connection. | `hostName:port/wsjms`
    `mqwss` | `wssjms` | MQ makes a direct WebSocket secure connection to the specified host and port to establish a connection. | `hostName:port/wssjms`

    The following table shows how the message server address syntax applies in some typical cases.

    typical message server address syntax applications
    Connection Service | Broker Host | Port | Example Address
    --- | --- | --- | ---
    Unspecified | Unspecified | Unspecified | Default `(mq://localHost:7676/jms)`
    Unspecified | Specified Host | Unspecified | `myBkrHost (mq://myBkrHost:7676/jms)`
    Unspecified | Unspecified | Specified Portmapper Port | `1012 (mq://localHost:1012/jms)`
    `ssljms` | Local Host | Default Portmapper Port | `mq://localHost:7676/ssljms`
    `ssljms` | Specified Host | Default Portmapper Port | `mq://myBkrHost:7676/ssljms`
    `ssljms` | Specified Host | Specified Portmapper Port | `mq://myBkrHost:1012/ssljms`
    `jms` | Local Host | Specified Service Port | `mqtcp://localhost:1032/jms`
    `ssljms` | Specified Host | Specified Service Port | `mqssl://myBkrHost:1034/ssljms`
    `httpjms` | N/A | N/A | `http://websrvr1:8085/imq/tunnel`
    `httpsjms` | N/A | N/A | `https://websrvr2:8090/imq/tunnel`
    `wsjms` | Specified Host | Specified Service Port | `mqws://websrvr1:7670/wsjms`
    `wssjms` | Specified Host | Specified Service Port | `mqwss://websrvr2:7671/wssjms`

    The default value of this property is `empty`

    See Also:
      - `imqAddressListBehavior`
      - `imqAddressListIterations`
      - Constant Field Values

  - ### imqAddressListIterations

    public static final String imqAddressListIterations
    This property holds the number of times that OpenMQ will iterate through `imqAddressList` when connecting to the OpenmMQ Service.

    The default value of this property is `1`

    See Also:
      - `imqAddressList`
      - `imqAddressListBehavior`
      - Constant Field Values

  - ### imqAddressListBehavior

    public static final String imqAddressListBehavior
    This property determines how OpenMQ will select entries from the `imqAddressList` property to use when making a connection to the OpenMQ Message Service.

    The acceptable values for this property are `PRIORITY` and `RANDOM`.

    When `PRIORITY` is used, OpenMQ will start with the firstentry in `imqAddressList` when attempting to make the first connection to the OpenMQ Message Service.

    Subsequently, when OpenMQ is attempting to re-connect to the Message Service, it will use successive entries from `imqAddressList` in the order they are specified.

    When `RANDOM` is used, OpenMQ will start with a random entry in `imqAddressList` when attempting to make the first connection to the OpenMQ Message Service.

    Subsequently, when OpenMQ is attempting to re-connect to the Message Service, it will use entries in the order they are specified in `imqAddressList` starting with the initial randomly chosen entry.

    The default value of this property is `PRIORITY`

    See Also:
      - `imqAddressList`
      - `imqAddressListIterations`
      - Constant Field Values

  - ### imqConnectionType

    public static final String imqConnectionType
    This property holds the connection type used to connect to the OpenMQ Message Service.

    Note that this property is superseded by the `imqAddressList` property and is present only for compatibility with MQ 3.0 clients. This property may be removed in the next major version of MQ.

    The default value of this property is `TCP`

    The allowable values are `TCP,TLS,HTTP,and the special value - ...`

    When the special value of `...` is used, the classname specified in the property `imqConnectionHandler` is required to handle the connection to the OpenMQ Message Service.

    See Also:
      - `imqAddressList`
      - Constant Field Values

  - ### imqConnectionHandler

    public static final String imqConnectionHandler
    This property holds the name of the class that will be used to handle the connection to the OpenMQ Message Service and is required when the value of the `imqConnectionType` property is set to `...`

    This property is not normally specified and will assume the classname handling the ConnectionType specified in `imqConnectionType`. However, if specified, this property overrides `imqConnectionType`.

    The default value of this property is `com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPStreamHandler`

    See Also:
      - Constant Field Values

  - ### imqDefaultUsername

    public static final String imqDefaultUsername
    This property holds the default username that will be used to authenticate with the OpenMQ Message Service.

    The default value of this property is `guest`

    See Also:
      - Constant Field Values

  - ### imqDefaultPassword

    public static final String imqDefaultPassword
    This property holds the default password that will be used to authenticate with the OpenMQ Message Service.

    The default value of this property is `guest`

    See Also:
      - Constant Field Values

  - ### imqAckTimeout

    public static final String imqAckTimeout
    This property holds the maximum time, in milliseconds, that a OpenMQ Client Application will wait before throwing a JMSException when awaiting an acknowledgement from the OpenMQ Message Service.

    A value of `0` indicates that it will wait indefinitely.

    The default value for this property is `0` i.e. indefinitely.

    See Also:
      - Constant Field Values

  - ### imqAsyncSendCompletionWaitTimeout

    public static final String imqAsyncSendCompletionWaitTimeout
    This property holds the minimum time, in milliseconds, that the MQ client runtime will wait for an asynchronous send to complete before calling the CompletionListener's onException method with timed out exception

    A value of `0` is not allowed.

    The default value for this property is `180000`

    See Also:
      - Constant Field Values

  - ### imqReconnectEnabled

    public static final String imqReconnectEnabled
    This property indicates whether the OpenMQ Client Application will attempt to reconnect to the OpenMQ Message Service upon losing its connection.

    The default value for this property is `false`

    See Also:
      - Constant Field Values

  - ### imqReconnectInterval

    public static final String imqReconnectInterval
    This property specifies the interval, in milliseconds, between successive reconnect attempts made by the MQ Client Application to the OpenMQ Message Service.

    The default value for this property is `30000` milliseconds.

    See Also:
      - Constant Field Values

  - ### imqReconnectAttempts

    public static final String imqReconnectAttempts
    This property holds the number of reconnect attempts for each address in the `imqAddressList` property that the OpenMQ Client Application will make before moving on the next address in `imqAddressList`. will make in trying to reconnect to the OpenMQ Message Service. A value of `-1` indicates that the MQ Client Application will make an unlimited number of reconnect attempts.

    Note that this property is only applicable when `imqReconnectEnabled` is set to `true`.

    The default value for this property is `0` - i.e. No reconnect attempts.

    See Also:
      - Constant Field Values

  - ### imqPingInterval

    public static final String imqPingInterval
    This property specifies the 'ping' interval, in seconds, between successive attempts made by an MQ Connection to verify that its physical connection to the MQ broker is still functioning properly. The MQ Client Runtime uses this value to set up the frequency of 'pings' made by MQ Connections that originate from this ConnectionFactory. Valid values include all positive integers indicating the number of seconds to delay between successive 'pings'. A value of `0`, or `-1` indicates that the MQ Connection will disable this 'ping' functionality.

    The default value for this property is `30` - i.e. 30 seconds between 'pings'.

    See Also:
      - Constant Field Values

  - ### imqPingAckTimeout

    public static final String imqPingAckTimeout
    When `imqAbortOnPingAckTimeout` is true, this property specifies maximum time, in milliseconds, that MQ Client Runtime will wait for a ping reply or any data sent from the MQ broker since last 'ping'. This property is ignored if `imqAbortOnPingAckTimeout` is false.

    A value of `0` indicates no timeout

    The default value for this property is `0`

    See Also:
      - `imqAbortOnPingAckTimeout`
      - Constant Field Values

  - ### imqSocketConnectTimeout

    public static final String imqSocketConnectTimeout
    This property defines the socket timeout, in milliseconds, used when a TCP connection is made to the broker. A timeout of zero is interpreted as an infinite timeout. The connection will then block until established or an error occurs. This property is used when connecting to the port mapper as well as when connecting to the required service.
    See Also:
      - Constant Field Values

  - ### imqPortMapperSoTimeout

    public static final String imqPortMapperSoTimeout
    This property defines port mapper client socket read timeout, in milliseconds.

    A value of 0 indicates no timeout

    The value of this property is set to 60000 by default.

    See Also:
      - Constant Field Values

  - ### imqKeyStore

    public static final String imqKeyStore
    This property specifies the key store location

    The value of this property is not set by default.

    See Also:
      - Constant Field Values

  - ### imqKeyStorePassword

    public static final String imqKeyStorePassword
    This property specifies the key store password. Set this property to a non-null value will make the connection capable of SSL client authenication if requested by broker. If it is set to empty string, Java system property javax.net.ssl.keyStorePassword will be used if set

    The value of this property is not set by default.

    See Also:
      - Constant Field Values

  - ### imqAbortOnPingAckTimeout

    public static final String imqAbortOnPingAckTimeout
    If this property is set to true, the MQ Client Runtime will abort the connection to the MQ broker when timeout, as specified by `imqPingAckTimeout`, in waiting for a 'ping' reply or any data sent from the MQ broker since last 'ping', then the MQ Client Runtime will perform actions as if the connection is broken.
    See Also:
      - `imqPingAckTimeout`
      - Constant Field Values

  - ### imqSetJMSXAppID

    public static final String imqSetJMSXAppID
    This property indicates whether OpenMQ should set the JMSXAppID property on produced messages.

    The default value of this property is `false`

    See Also:
      - Constant Field Values

  - ### imqSetJMSXUserID

    public static final String imqSetJMSXUserID
    This property indicates whether OpenMQ should set the JMSXUserID property on produced messages.

    The default value of this property is `false`

    See Also:
      - Constant Field Values

  - ### imqSetJMSXProducerTXID

    public static final String imqSetJMSXProducerTXID
    This property indicates whether OpenMQ should set the JMSXProducerTXID property on produced messages.

    The default value of this property is `false`

    See Also:
      - Constant Field Values

  - ### imqSetJMSXConsumerTXID

    public static final String imqSetJMSXConsumerTXID
    This property indicates whether OpenMQ should set the JMSXConsumerTXID property on consumed messages.

    The default value of this property is `false`

    See Also:
      - Constant Field Values

  - ### imqSetJMSXRcvTimestamp

    public static final String imqSetJMSXRcvTimestamp
    This property indicates whether OpenMQ should set the JMSXRcvTimestamp property on consumed messages.

    The default value of this property is `false`

    See Also:
      - Constant Field Values

  - ### imqBrokerHostName

    public static final String imqBrokerHostName
    This property holds the hostname that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.

    Note that this property is superseded by the `imqAddressList` property and is present only for compatibility with MQ 3.0 clients. This property may be removed in the next major version of MQ.

    The default value of this property is `localhost`

    See Also:
      - `imqAddressList`
      - Constant Field Values

  - ### imqBrokerHostPort

    public static final String imqBrokerHostPort
    This property holds the Primary Port number that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.

    Note that this property is superseded by the `imqAddressList` property and is present only for compatibility with MQ 3.0 clients. This property may be removed in the next major version of MQ.

    The OpenMQ Client uses this port to communicate with the Port Mapper Service to determine the actual port number of the connection service that it wishes to use.

    The default value of this property is `7676`

    See Also:
      - `imqAddressList`
      - Constant Field Values

  - ### imqBrokerServiceName

    public static final String imqBrokerServiceName
    This property holds the connection service name that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.

    Note that this property is superseded by the `imqAddressList` property and is present only for compatibility with MQ 3.0 clients. This property may be removed in the next major version of MQ.

    By default, when the value of this property is `null`, the MQ Client uses the Primary Port to connect to the MQ Message Service and subsequently uses the first connection service that corresponds to imqConnnectionType.

    When the value of this property is non-null, the MQ Client will first connect to the Port Mapper Service and then use the connection service that matches `imqBrokerServiceName` ensuring that it corresponds to the right `imqConnectionType`.

    The default value of this property is `null`

    See Also:
      - `imqAddressList`
      - Constant Field Values

  - ### imqBrokerServicePort

    public static final String imqBrokerServicePort
    This property holds the actual port number that will be used to connect to the OpenMQ Message Service using the TCP and TLS ConnectionHandler classes provided with OpenMQ.

    Note that this property is superseded by the `imqAddressList` property and is present only for compatibility with MQ 3.0 clients. This property may be removed in the next major version of MQ.

    By default, when the value of this property is `0`, the MQ Client uses the Primary Port to connect to the MQ Message Service and subsequently determines the actual port number of the connection service that it wishes to use.

    When the value of this property is non-zero, the MQ Client will use this port number to directly connect to the connection service that it wishes to use without first communicating with the Port Mapper Service

    The default value of this property is `0`

    See Also:
      - `imqAddressList`
      - Constant Field Values

  - ### imqSSLProviderClassname

    public static final String imqSSLProviderClassname
    This property holds the TLS Provider Classname that will be used when connecting to the OpenMQ Message Service using the TLS ConnectionHandler class provided with OpenMQ.

    The default value of this property is `com.sun.net.ssl.internal.ssl.Provider`

    See Also:
      - Constant Field Values

  - ### imqSSLIsHostTrusted

    public static final String imqSSLIsHostTrusted
    This property indicates whether the host is trusted when connecting to the OpenMQ Message Service using the TLS ConnectionHandler class provided with OpenMQ.

    If this value is set to `false`, then the Root Certificate provided by the Certificate Authority must be available to the MQ Client Application when it connects to the MQ Message Service.

    The default value of this property is `false`

    See Also:
      - Constant Field Values

  - ### imqConnectionURL

    public static final String imqConnectionURL
    This property holds the URL that will be used when connecting to the OpenMQ Message Service using the HTTP ConnectionHandler class provided with OpenMQ.

    Note that this property is superseded by the `imqAddressList` property and is present only for compatibility with MQ 3.0 clients. This property may be removed in the next major version of MQ.

    Since the URL may be shared by multiple message service instances, the optional `ServerName` attribute can be used to identify a specific message service address. The `ServerName` attribute is specified using the standard query string syntax. For example - `http://localhost/imq/tunnel?ServerName=localhost:imqbroker`

    The default value of this property is `http://localhost/imq/tunnel`

    See Also:
      - `imqAddressList`
      - Constant Field Values

  - ### imqDisableSetClientID

    public static final String imqDisableSetClientID
    This property indicates whether the OpenMQ Client Application is prevented from changing the ClientID using the `setClientID()` method in `jakarta.jms.Connection`.

    The default value of this property is `false`

    See Also:
      - `imqConfiguredClientID`
      - `Connection.setClientID(clientID)`
      - `Connection.getClientID()`
      - Constant Field Values

  - ### imqConfiguredClientID

    public static final String imqConfiguredClientID
    This property holds the value of an administratively configured ClientID.

    The default value of this property is `null`

    See Also:
      - `imqDisableSetClientID`
      - `Connection.setClientID(clientID)`
      - `Connection.getClientID()`
      - Constant Field Values

  - ### imqEnableSharedClientID

    public static final String imqEnableSharedClientID
    This property indicates whether the client identifier requested and used by this connection is to be acquired in 'shared' mode.

    When a client identifier is used in 'shared' mode, other connections are also allowed to use the same client identifier.

    If a client identifier is already in use in 'unique' mode, then a request to set a client identifier in 'shared' mode will fail. Likewise, if a client identifier is already in use in 'shared' mode, then a request to set a client identifier in 'unique' mode will fail.

    The default value of this property is `false` - i.e. a client identifier will be requested in 'unique' mode.

    See Also:
      - `imqConfiguredClientID`
      - `imqDisableSetClientID`
      - `Connection.setClientID(clientID)`
      - `Connection.getClientID()`
      - Constant Field Values

  - ### imqAckOnProduce

    public static final String imqAckOnProduce
    This property is used to control the reliability of every message that is produced by a MessageProducer.

    The value of this property is used only when it is set. If the property is left unset, (the default behavior), the OpenMQ Client will ensure that every PERSISTENT message that is produced has been received by the OpenMQ Message Service before returning from the `send()` and `publish()` methods.

    If this property is set to `true`, then the MQ Client will always wait until it ensures that the message has been reecived by the MQ Message Service before returning from the `send()` and `publish()` methods.

    If this property is set to `false`, then the MQ Client will not wait until it ensures that the message has been reecived by the MQ Message Service before returning from the `send()` and `publish()` methods.

    When this property is used, it applies to all messages and not just the PERSISTENT messages.

    The value of this property is not set by default.

    See Also:
      - `imqAckOnAcknowledge`
      - Constant Field Values

  - ### imqAckOnAcknowledge

    public static final String imqAckOnAcknowledge
    This property is used to control the reliability of message acknowledgement for every message that is consumed by a MessageConsumer.

    The value of this property is used only when it is set. If the property is left unset, (the default behavior), the OpenMQ Client will ensure that the acknowledgment for every PERSISTENT message that is consumed, has been received by the OpenMQ Message Service before the appropriate method returns - i.e. either the `Message.acknowledge()` method in the `CLIENT_ACKNOWLEDGE` mode or the `receive()` and/or `onMessage()` methods in the `AUTO_ACKNOWLEDGE` and `DUPS_OK_ACKNOWLEDGE` modes and transacted Sessions.

    If this property is set to `true`, then the MQ Client will always wait until it ensures that the acknowledgement for the message has been reecived by the MQ Message Service before returning from the `send()` and `publish()` methods.

    If this property is set to `false`, then the MQ Client will not wait until it ensures that the acknowledgement for the message has been reecived by the MQ Message Service before returning from the appropriate method that is responsible for sending the acknowledgement - i.e. either the `Message.acknowledge()` method in the `CLIENT_ACKNOWLEDGE` mode or the `receive()` and/or `onMessage()` methods in the `AUTO_ACKNOWLEDGE` and `DUPS_OK_ACKNOWLEDGE` modes and transacted Sessions.

    The value of this property is not set by default.

    See Also:
      - `imqAckOnProduce`
      - Constant Field Values

  - ### imqConsumerFlowLimit

    public static final String imqConsumerFlowLimit
    This property specifies the upper limit of the number of messages per consumer that will be delivered and buffered in the MQ client. When the number of JMS messages delivered to a consumer reaches this limit, message delivery for that consumer stops. Message delivery is only resumed when the number of unconsumed messages for that consumer drops below the value determined using `imqConsumerFlowThreshold` property.

    When a consumer is created, JMS messages for that consumer will begin to flow to the connection on which the consumer has been established. When the number of messages delivered to the consumer reaches the limit set by `imqConsumerFlowLimit`, delivery of messages is stopped. As messages are consumed, the number of unconsumed messages buffered in the MQ client drops.

    When the number of unconsumed messages drops below the number determined by using `imqConsumerFlowThreshold`, as a percentage of `imqConsumerFlowLimit`, MQ resumes delivery of messages to that consumer until the number of messages delivered to that consumer reaches the limit set by `imqConsumerFlowLimit`.

    Note that the actual value of the message flow limit used by MQ for each consumer is the lower of two values - the `imqConsumerFlowLimit` set on the ConnectionFactory and the `consumerFlowLimit` value set on the physical destination that the consumer is established on.

    The default value for this property is `1000`

    See Also:
      - `imqConsumerFlowThreshold`
      - Constant Field Values

  - ### imqConsumerFlowThreshold

    public static final String imqConsumerFlowThreshold
    This property controls when JMS message delivery will resume to consumers that have had their message delivery stopped due to the number of messages buffered in the MQ client exceeding the limit set by `imqConsumerFlowLimit` and is expressed as a percentage of `imqConsumerFlowLimit` .

    See the description for the `imqConsumerFlowLimit` property for how the two properties are used together to meter the flow of JMS messages to individual consumers.

    The default value for this property is `50` (percent).

    See Also:
      - `imqConsumerFlowLimit`
      - Constant Field Values

  - ### imqConsumerFlowLimitPrefetch

    public static final String imqConsumerFlowLimitPrefetch
    When this property is set to false, there will be no prefetch next message (except the first message) from broker to a consumer, and consumer flow control properties `imqConsumerFlowLimit` and `imqConsumerFlowThreshold` will be ignored. When it is set to true, the default, prefetch will take place as defined by consumer flow control properties.
    See Also:
      - `imqConsumerFlowLimit`
      - `imqConsumerFlowThreshold`
      - Constant Field Values

  - ### imqConnectionFlowCount

    public static final String imqConnectionFlowCount
    This property manages the number of JMS messages that will flow from the OpenMQ Message Service to the MQ Client between each 'resume flow' notification from the Client to the Message Service to receive additional JMS messages.

    If the count is set to `0` then the Message Service will not restrict the number of JMS messages sent to the Client.

    After the Message Service has sent the number of JMS messages specified by this property, it will await a 'resume flow' notification from the Client before sending the next set of JMS messages. A non-zero value allows the Client to receive and process control messages from the Message Service even if there is a large number of JMS messages being held by the Message Service for delivery to this Client.

    The MQ Client further has the ability to limit this JMS message flow using the property `imqConnectionFlowEnabled`

    The default value for this property is `100`

    See Also:
      - `imqConnectionFlowLimitEnabled`
      - `imqConnectionFlowLimit`
      - Constant Field Values

  - ### imqConnectionFlowLimitEnabled

    public static final String imqConnectionFlowLimitEnabled
    This property indicates whether the OpenMQ Client should limit the flow of JMS messages from the OpenMQ Message Service using the number of messages specified in `imqConnectionFlowLimit`.

    This property will only be active if the property `imqConnectionFlowCount` has been set to a non-zero value.

    If this property is set to `true` the Client will use the property `imqConnectionFlowLimit` as described below. Flow control will not be limited if this property is set to `false`.

    The default value for this property is `false`

    See Also:
      - `imqConnectionFlowCount`
      - `imqConnectionFlowLimit`
      - Constant Field Values

  - ### imqConnectionFlowLimit

    public static final String imqConnectionFlowLimit
    This property specifies the number of uncomsumed JMS messages that a OpenMQ Client can hold, above which the MQ Client will refrain from sending a 'resume flow' notification to the OpenMQ Message Service. This property is active only when the `imqFlowControlEnabled` property is set to `true` and the `imqFlowControlCount` property is set to a non-zero value.

    The MQ Client will notify the OpenMQ Message Service ('resume flow') and receive JMS message (in chunks determined by `imqFlowControlCount`) until the number of received and uncomsumed JMS messages exceeds the value of this property. At this point, the Client will 'pause' until the JMS messages are consumed and when the unconsumed JMS message count drops below this value, the Client once again notifys the Message Service and the flow of JMS messages to the Client is resumed.

    The default value for this property is `1000`

    See Also:
      - `imqConnectionFlowLimitEnabled`
      - `imqConnectionFlowCount`
      - Constant Field Values

  - ### imqOnMessageExceptionRedeliveryAttempts

    public static final String imqOnMessageExceptionRedeliveryAttempts
    For AUTO_ACKNOWLEDGE and DUPS_OK_ACKNOWLEDGE, maximum redelivery attempts (>= 1) when a jakarta.jms.MessageListener.onMessage() throws RuntimeException. The message will be sent to DMQ if this maximum atttempts (> 1) reached.

    This property is ignored if the MessageListener is Message Driven Bean

    The default value for this property is `1`.

    See Also:
      - Constant Field Values

  - ### imqOnMessageExceptionRedeliveryIntervals

    public static final String imqOnMessageExceptionRedeliveryIntervals
    For AUTO_ACKNOWLEDGE and DUPS_OK_ACKNOWLEDGE, the interval in milliseconds for each subsequent redelivery attempt after first attempt when a jakarta.jms.MessageListener.onMessage() throws RuntimeException.

    This property is ignored if the MessageListener is Message Driven Bean

    The default value for this property is `500`milliseconds.

    See Also:
      - Constant Field Values

  - ### imqQueueBrowserRetrieveTimeout

    public static final String imqQueueBrowserRetrieveTimeout
    This property holds the maximum time, in milliseconds, that a OpenMQ Client Application will wait before throwing a NoSuchElementException when retrieving elements from a QueueBrowser Enumeration.

    The default value for this property is `60000` milliseconds.

    See Also:
      - `Enumeration`
      - `Enumeration.nextElement()`
      - `NoSuchElementException`
      - `jakarta.jms.QueueBrowser`
      - Constant Field Values

  - ### imqQueueBrowserMaxMessagesPerRetrieve

    public static final String imqQueueBrowserMaxMessagesPerRetrieve
    This property holds the maximum number of messages that will be retrieved at one time when a OpenMQ Client Application is enumerating through the messages on a Queue using a QueueBrowser.

    The default value for this property is `1000`

    See Also:
      - `Enumeration`
      - `Enumeration.nextElement()`
      - `jakarta.jms.QueueBrowser`
      - Constant Field Values

  - ### imqLoadMaxToServerSession

    public static final String imqLoadMaxToServerSession
    This property indicates how the OpenMQ ConnectionConsumer should load messages into a ServerSession's JMS Session.

    When set to `true`, OpenMQ will load as many messages as are available, upto the limit of the `maxMessages` parameter used when creating the ConnectionConsumer, using the `createConnectionConsumer()` API, into a ServerSession's JMS Session for processing.

    When set to `false`, OpenMQ will only load a single message into a ServerSession's JMS Session for processing.

    The default value of this property is `true`

    See Also:
      - `jakarta.jms.ConnectionConsumer`
      - `QueueConnection.createConnectionConsumer(Queue, messageSelector, ServerSessionPool, maxMessages)`
      - `TopicConnection.createConnectionConsumer(Topic, messageSelector, ServerSessionPool, maxMessages)`
      - `TopicConnection.createDurableConnectionConsumer(Topic, subscriptionName, messageSelector, ServerSessionPool, maxMessages)`
      - Constant Field Values

  - ### imqOverrideJMSDeliveryMode

    public static final String imqOverrideJMSDeliveryMode
    This property indicates whether OpenMQ should override the JMS Message Header `JMSDeliveryMode` which can be set using the JMS APIs.

    When this property is set to `true` OpenMQ will set the Message Header `JMSDeliveryMode` to the value of the property `imqJMSDeliveryMode` for all messages produced by the Connection created using this Administered Object. If `imqJMSDeliveryMode` has an invalid value, then the default value of the JMS Message Header `JMSDeliveryMode` will be used instead. value.

    The default value of this property is `false`

    See Also:
      - `imqJMSDeliveryMode`
      - `MessageProducer.setDeliveryMode(deliveryMode)`
      - `QueueSender.send(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.send(Queue, Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Topic, Message, deliveryMode, priority, timeToLive)`
      - Constant Field Values

  - ### imqJMSDeliveryMode

    public static final String imqJMSDeliveryMode
    This property holds the administratively configured value of the JMS Message Header `JMSDeliveryMode`.

    When `imqOverrideJMSDeliveryMode` is set to `true`, all messages produced to non-Temporary Destinations by the Connection created using this Administered Object will have their JMS Message Header `JMSDeliveryMode` set to the value of this property.

    In addition, when `imqOverrideJMSHeadersToTemporaryDestinations` is set to `true`, all messages produced to Temporary Destinations will also contain the overridenvalue of this JMS Message Header.

    Setting an invalid value on this property will result in the Message Header being set to the default value of `JMSDeliveryMode` as defined by the JMS Specification.

    The default value of this property is `null`

    See Also:
      - `imqOverrideJMSDeliveryMode`
      - `JMSDeliveryMode_PERSISTENT`
      - `JMSDeliveryMode_NON_PERSISTENT`
      - `Message.DEFAULT_DELIVERY_MODE`
      - `DeliveryMode.PERSISTENT`
      - `DeliveryMode.NON_PERSISTENT`
      - `MessageProducer.setDeliveryMode(deliveryMode)`
      - `QueueSender.send(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.send(Queue, Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Topic, Message, deliveryMode, priority, timeToLive)`
      - Constant Field Values

  - ### JMSDeliveryMode_PERSISTENT

    public static final String JMSDeliveryMode_PERSISTENT
    This constant is used to set the value of `imqJMSDeliveryMode` to PERSISTENT when the JMSDeliveryMode JMS Message Header is administratively configured.

    See Also:
      - `imqOverrideJMSDeliveryMode`
      - `imqJMSDeliveryMode`
      - Constant Field Values

  - ### JMSDeliveryMode_NON_PERSISTENT

    public static final String JMSDeliveryMode_NON_PERSISTENT
    This constant is used to set the value of `imqJMSDeliveryMode` to NON_PERSISTENT when the JMSDeliveryMode JMS Message Header is administratively configured.

    See Also:
      - `imqOverrideJMSDeliveryMode`
      - `imqJMSDeliveryMode`
      - Constant Field Values

  - ### imqOverrideJMSExpiration

    public static final String imqOverrideJMSExpiration
    This property indicates whether OpenMQ should override the JMS Message Header `JMSExpiration` which can be set using the JMS APIs.

    When this property is set to `true` OpenMQ will set the Message Header `JMSExpiration` to the value of the property `imqJMSExpiration` for all messages produced by the Connection created using this Administered Object. If `imqJMSExpiration` has an invalid value, then the default value of the JMS Message Header `JMSExpiration` will be used instead. value.

    The default value of this property is `false`

    See Also:
      - `imqJMSExpiration`
      - `MessageProducer.setTimeToLive(timeToLive)`
      - `QueueSender.send(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.send(Queue, Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Topic, Message, deliveryMode, priority, timeToLive)`
      - Constant Field Values

  - ### imqJMSExpiration

    public static final String imqJMSExpiration
    This property holds the administratively configured value of the JMS Message Header `JMSExpiration`.

    When `imqOverrideJMSExpiration` is set to `true`, all messages produced to non-Temporary Destinations by the Connection created using this Administered Object will have their JMS Message Header `JMSExpiration` set to the value of this property.

    In addition, when `imqOverrideJMSHeadersToTemporaryDestinations` is set to `true`, all messages produced to Temporary Destinations will also contain the overridenvalue of this JMS Message Header.

    Setting an invalid value on this property will result in the Message Header being set to the default value of `JMSExpiration` as defined by the JMS Specification.

    The JMS Specification defines `JMSExpiration` as the time in milliseconds from its dispatch time that a produced message should be retained by the message service. An value of `0` indicates that the message is retained indefinitely. The default value of `JMSExpiration` is `0`.

    The default value of this property is `null`

    See Also:
      - `imqOverrideJMSExpiration`
      - `Message.DEFAULT_TIME_TO_LIVE`
      - `MessageProducer.setTimeToLive(timeToLive)`
      - `QueueSender.send(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.send(Queue, Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Topic, Message, deliveryMode, priority, timeToLive)`
      - Constant Field Values

  - ### imqOverrideJMSPriority

    public static final String imqOverrideJMSPriority
    This property indicates whether OpenMQ should override the JMS Message Header `JMSPriority` which can be set using the JMS APIs.

    When this property is set to `true` OpenMQ will set the Message Header `JMSPriority` to the value of the property `imqJMSPriority` for all messages produced by all messages produced to non-Temporary Destinations by the Connection created using this Administered Object. If `imqJMSPriority` has an invalid value, then the default value of the JMS Message Header `JMSPriority` will be used instead. value.

    The default value of this property is `false`

    See Also:
      - `imqJMSPriority`
      - `MessageProducer.setPriority(priority)`
      - `QueueSender.send(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.send(Queue, Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Topic, Message, deliveryMode, priority, timeToLive)`
      - `DeliveryMode.PERSISTENT`
      - `DeliveryMode.NON_PERSISTENT`
      - Constant Field Values

  - ### imqJMSPriority

    public static final String imqJMSPriority
    This property holds the administratively configured value of the JMS Message Header `JMSPriority`.

    When `imqOverrideJMSPriority` is set to `true`, all messages produced to non-Temporary Destinations by the Connection created using this Administered Object will have their JMS Message Header `JMSPriority` set to the value of this property.

    In addition, when `imqOverrideJMSHeadersToTemporaryDestinations` is set to `true`, all messages produced to Temporary Destinations will also contain the overridenvalue of this JMS Message Header.

    Setting an invalid value on this property will result in the Message Header being set to the default value of `JMSPriority` as defined by the JMS Specification.

    The JMS Specification defines a 10 level value for `JMSPriority`, the priority with which produced messages are delivered by the message service, with 0 as the lowest and 9 as the highest. Clients should consider 0-4 as gradients of normal priority and 5-9 as gradients of expedited priority. `JMSPriority` is set to 4, by default.

    The default value of this property is `null`

    See Also:
      - `imqOverrideJMSPriority`
      - `Message.DEFAULT_PRIORITY`
      - `MessageProducer.setPriority(priority)`
      - `QueueSender.send(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.send(Queue, Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Topic, Message, deliveryMode, priority, timeToLive)`
      - Constant Field Values

  - ### imqOverrideJMSHeadersToTemporaryDestinations

    public static final String imqOverrideJMSHeadersToTemporaryDestinations
    This property indicates whether OpenMQ should override the JMS Message Headers on Messages that are sent to Temporary Destinations.

    When `imqOverrideJMSHeadersToTemporaryDestinations` is set to `true`, imq will override the JMS Message Headers listed below on Messages sent to Temporary Destinations providing the corresponding property enabling the JMS Message Header override on Messages sent to non-temporary Destinations is also set to `true`.

    `JMSPriority`

    `JMSExpiration`

    `JMSDeliveryMode`

    The default value of this property is `false`

    See Also:
      - `imqOverrideJMSDeliveryMode`
      - `imqJMSDeliveryMode`
      - `imqOverrideJMSExpiration`
      - `imqJMSExpiration`
      - `imqOverrideJMSPriority`
      - `imqJMSPriority`
      - `MessageProducer.setDeliveryMode(deliveryMode)`
      - `MessageProducer.setTimeToLive(timeToLive)`
      - `MessageProducer.setPriority(priority)`
      - `QueueSender.send(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.send(Queue, Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Message, deliveryMode, priority, timeToLive)`
      - `QueueSender.publish(Topic, Message, deliveryMode, priority, timeToLive)`
      - `DeliveryMode.PERSISTENT`
      - `DeliveryMode.NON_PERSISTENT`
      - Constant Field Values