Package com.sun.messaging

## Class ConnectionConfiguration

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

-     public class ConnectionConfiguration
      extends java.lang.Object

  The `ConnectionConfiguration` class contains Sun MQ specific connection configuration property names and special values.
  See Also:
    `com.sun.messaging.ConnectionFactory`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.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 java.lang.String` | `imqAckOnAcknowledge` | This property is used to control the reliability of message acknowledgement for every message that is consumed by a MessageConsumer.
    `static java.lang.String` | `imqAckOnProduce` | This property is used to control the reliability of every message that is produced by a MessageProducer.
    `static java.lang.String` | `imqAckTimeout` | This property holds the the maximum time, in milliseconds, that a Sun MQ Client Application will wait before throwing a JMSException when awaiting an acknowledgement from the Sun MQ Message Service.
    `static java.lang.String` | `imqAddressList` | This property holds the address list that will be used to connect to the Sun MQ Message Service.
    `static java.lang.String` | `imqAddressListBehavior` | This property determines how Sun MQ will select entries from the `imqAddressList` property to use when making a connection to the Sun MQ Message Service.
    `static java.lang.String` | `imqAddressListIterations` | This property holds the number of times that Sun MQ will iterate through `imqAddressList` when connecting to the Sun Message Queue Service.
    `static java.lang.String` | `imqAsyncSendCompletionWaitTimeout` | This property holds the 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 java.lang.String` | `imqBrokerHostName` | This property holds the hostname that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.
    `static java.lang.String` | `imqBrokerHostPort` | This property holds the Primary Port number that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.
    `static java.lang.String` | `imqBrokerServiceName` | This property holds the connection service name that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.
    `static java.lang.String` | `imqBrokerServicePort` | This property holds the actual port number that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.
    `static java.lang.String` | `imqConfiguredClientID` | This property holds the value of an administratively configured ClientID.
    `static java.lang.String` | `imqConnectionFlowCount` | This property manages the number of JMS messages that will flow from the Sun MQ Message Service to the MQ Client between each 'resume flow' notification from the Client to the Message Service to receive additional JMS messages.
    `static java.lang.String` | `imqConnectionFlowLimit` | This property specifies the number of uncomsumed JMS messages that a Sun MQ Client can hold, above which the MQ Client will refrain from sending a 'resume flow' notification to the Sun MQ Message Service.
    `static java.lang.String` | `imqConnectionFlowLimitEnabled` | This property indicates whether the Sun MQ Client should limit the flow of JMS messages from the Sun MQ Message Service using the number of messages specified in `imqConnectionFlowLimit`.
    `static java.lang.String` | `imqConnectionHandler` | This property holds the name of the class that will be used to handle the connection to the Sun MQ Message Service and is required when the value of the `imqConnectionType` property is set to `...`
    `static java.lang.String` | `imqConnectionType` | This property holds the connection type used to connect to the Sun MQ Message Service.
    `static java.lang.String` | `imqConnectionURL` | This property holds the URL that will be used when connecting to the Sun MQ Message Service using the HTTP ConnectionHandler class provided with Sun MQ.
    `static java.lang.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 java.lang.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 java.lang.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 java.lang.String` | `imqDefaultPassword` | This property holds the default password that will be used to authenticate with the Sun MQ Message Service.
    `static java.lang.String` | `imqDefaultUsername` | This property holds the default username that will be used to authenticate with the Sun MQ Message Service.
    `static java.lang.String` | `imqDisableSetClientID` | This property indicates whether the Sun MQ Client Application is prevented from changing the ClientID using the `setClientID()` method in `jakarta.jms.Connection`.
    `static java.lang.String` | `imqEnableSharedClientID` | This property indicates whether the client identifier requested and used by this connection is to be acquired in 'shared' mode.
    `static java.lang.String` | `imqJMSDeliveryMode` | This property holds the administratively configured value of the JMS Message Header `JMSDeliveryMode`.
    `static java.lang.String` | `imqJMSExpiration` | This property holds the administratively configured value of the JMS Message Header `JMSExpiration`.
    `static java.lang.String` | `imqJMSPriority` | This property holds the administratively configured value of the JMS Message Header `JMSPriority`.
    `static java.lang.String` | `imqKeyStore` | This property specifies the key store location
    `static java.lang.String` | `imqKeyStorePassword` | This property specifies the key store password.
    `static java.lang.String` | `imqLoadMaxToServerSession` | This property indicates how the Sun MQ ConnectionConsumer should load messages into a ServerSession's JMS Session.
    `static java.lang.String` | `imqOnMessageExceptionRedeliveryAttempts` | For AUTO_ACKNOWLEDGE and DUPS_OK_ACKNOWLEDGE, maximum redelivery attempts (>= 1) when a jakarta.jms.MessageListener.onMessage() throws RuntimeException.
    `static java.lang.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 java.lang.String` | `imqOverrideJMSDeliveryMode` | This property indicates whether Sun MQ should override the JMS Message Header `JMSDeliveryMode` which can be set using the JMS APIs.
    `static java.lang.String` | `imqOverrideJMSExpiration` | This property indicates whether Sun MQ should override the JMS Message Header `JMSExpiration` which can be set using the JMS APIs.
    `static java.lang.String` | `imqOverrideJMSHeadersToTemporaryDestinations` | This property indicates whether Sun MQ should override the JMS Message Headers on Messages that are sent to Temporary Destinations.
    `static java.lang.String` | `imqOverrideJMSPriority` | This property indicates whether Sun MQ should override the JMS Message Header `JMSPriority` which can be set using the JMS APIs.
    `static java.lang.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 java.lang.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 java.lang.String` | `imqPortMapperSoTimeout` | This property defines port mapper client socket read timeout, in milliseconds.
    `static java.lang.String` | `imqQueueBrowserMaxMessagesPerRetrieve` | This property holds the the maximum number of messages that will be retrieved at one time when a Sun MQ Client Application is enumerating through the messages on a Queue using a QueueBrowser.
    `static java.lang.String` | `imqQueueBrowserRetrieveTimeout` | This property holds the the maximum time, in milliseconds, that a Sun MQ Client Application will wait before throwing a NoSuchElementException when retrieving elements from a QueueBrowser Enumeration.
    `static java.lang.String` | `imqReconnectAttempts` | This property holds the number of reconnect attempts for each address in the `imqAddressList` property that the Sun MQ Client Application will make before moving on the the next address in `imqAddressList`.
    `static java.lang.String` | `imqReconnectEnabled` | This property indicates whether the Sun MQ Client Application will attempt to reconnect to the Sun MQ Message Service upon losing its connection.
    `static java.lang.String` | `imqReconnectInterval` | This property specifies the interval, in milliseconds, between successive reconnect attempts made by the MQ Client Application to the Sun MQ Message Service.
    `static java.lang.String` | `imqSetJMSXAppID` | This property indicates whether Sun MQ should set the JMSXAppID property on produced messages.
    `static java.lang.String` | `imqSetJMSXConsumerTXID` | This property indicates whether Sun MQ should set the JMSXConsumerTXID property on consumed messages.
    `static java.lang.String` | `imqSetJMSXProducerTXID` | This property indicates whether Sun MQ should set the JMSXProducerTXID property on produced messages.
    `static java.lang.String` | `imqSetJMSXRcvTimestamp` | This property indicates whether Sun MQ should set the JMSXRcvTimestamp property on consumed messages.
    `static java.lang.String` | `imqSetJMSXUserID` | This property indicates whether Sun MQ should set the JMSXUserID property on produced messages.
    `static java.lang.String` | `imqSocketConnectTimeout` | This property defines the socket timeout, in milliseconds, used when a TCP connection is made to the broker.
    `static java.lang.String` | `imqSSLIsHostTrusted` | This property indicates whether the host is trusted when connecting to the Sun MQ Message Service using the TLS ConnectionHandler class provided with Sun MQ.
    `static java.lang.String` | `imqSSLProviderClassname` | This property holds the TLS Provider Classname that will be used when connecting to the Sun MQ Message Service using the TLS ConnectionHandler class provided with Sun MQ.
    `static java.lang.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 java.lang.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 java.lang.Object

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

- - ### Field Detail

    - #### imqAddressList

          public static final java.lang.String imqAddressList

      This property holds the address list that will be used to connect to the Sun MQ 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`

      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`

      The default value of this property is `empty`

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

    - #### imqAddressListIterations

          public static final java.lang.String imqAddressListIterations

      This property holds the number of times that Sun MQ will iterate through `imqAddressList` when connecting to the Sun Message Queue Service.

      The default value of this property is `1`

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

    - #### imqAddressListBehavior

          public static final java.lang.String imqAddressListBehavior

      This property determines how Sun MQ will select entries from the `imqAddressList` property to use when making a connection to the Sun MQ Message Service.

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

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

      Subsequently, when Sun MQ 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, Sun MQ will start with a random entry in `imqAddressList` when attempting to make the first connection to the Sun MQ Message Service.

      Subsequently, when Sun MQ 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 java.lang.String imqConnectionType

      This property holds the connection type used to connect to the Sun MQ 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 Sun MQ Message Service.

      See Also:
        `imqAddressList`, Constant Field Values

    - #### imqConnectionHandler

          public static final java.lang.String imqConnectionHandler

      This property holds the name of the class that will be used to handle the connection to the Sun MQ 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 java.lang.String imqDefaultUsername

      This property holds the default username that will be used to authenticate with the Sun MQ Message Service.

      The default value of this property is `guest`

      See Also:
        Constant Field Values

    - #### imqDefaultPassword

          public static final java.lang.String imqDefaultPassword

      This property holds the default password that will be used to authenticate with the Sun MQ Message Service.

      The default value of this property is `guest`

      See Also:
        Constant Field Values

    - #### imqAckTimeout

          public static final java.lang.String imqAckTimeout

      This property holds the the maximum time, in milliseconds, that a Sun MQ Client Application will wait before throwing a JMSException when awaiting an acknowledgement from the Sun MQ 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 java.lang.String imqAsyncSendCompletionWaitTimeout

      This property holds the 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 java.lang.String imqReconnectEnabled

      This property indicates whether the Sun MQ Client Application will attempt to reconnect to the Sun MQ Message Service upon losing its connection.

      The default value for this property is `false`

      See Also:
        Constant Field Values

    - #### imqReconnectInterval

          public static final java.lang.String imqReconnectInterval

      This property specifies the interval, in milliseconds, between successive reconnect attempts made by the MQ Client Application to the Sun MQ Message Service.

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

      See Also:
        Constant Field Values

    - #### imqReconnectAttempts

          public static final java.lang.String imqReconnectAttempts

      This property holds the number of reconnect attempts for each address in the `imqAddressList` property that the Sun MQ Client Application will make before moving on the the next address in `imqAddressList`. will make in trying to reconnect to the Sun MQ 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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 not set by default.

      See Also:
        Constant Field Values

    - #### imqKeyStore

          public static final java.lang.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 java.lang.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 java.lang.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 java.lang.String imqSetJMSXAppID

      This property indicates whether Sun MQ 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 java.lang.String imqSetJMSXUserID

      This property indicates whether Sun MQ 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 java.lang.String imqSetJMSXProducerTXID

      This property indicates whether Sun MQ 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 java.lang.String imqSetJMSXConsumerTXID

      This property indicates whether Sun MQ 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 java.lang.String imqSetJMSXRcvTimestamp

      This property indicates whether Sun MQ 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 java.lang.String imqBrokerHostName

      This property holds the hostname that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.

      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 java.lang.String imqBrokerHostPort

      This property holds the Primary Port number that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.

      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 Sun MQ 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 java.lang.String imqBrokerServiceName

      This property holds the connection service name that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.

      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 java.lang.String imqBrokerServicePort

      This property holds the actual port number that will be used to connect to the Sun MQ Message Service using the TCP and TLS ConnectionHandler classes provided with Sun MQ.

      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 java.lang.String imqSSLProviderClassname

      This property holds the TLS Provider Classname that will be used when connecting to the Sun MQ Message Service using the TLS ConnectionHandler class provided with Sun MQ.

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

      See Also:
        Constant Field Values

    - #### imqSSLIsHostTrusted

          public static final java.lang.String imqSSLIsHostTrusted

      This property indicates whether the host is trusted when connecting to the Sun MQ Message Service using the TLS ConnectionHandler class provided with Sun MQ.

      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 java.lang.String imqConnectionURL

      This property holds the URL that will be used when connecting to the Sun MQ Message Service using the HTTP ConnectionHandler class provided with Sun MQ.

      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 java.lang.String imqDisableSetClientID

      This property indicates whether the Sun MQ 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 java.lang.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 java.lang.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 java.lang.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 Sun MQ Client will ensure that every PERSISTENT message that is produced has been received by the Sun MQ 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 java.lang.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 Sun MQ Client will ensure that the acknowledgment for every PERSISTENT message that is consumed, has been received by the Sun MQ 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 java.lang.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 java.lang.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 java.lang.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 java.lang.String imqConnectionFlowCount

      This property manages the number of JMS messages that will flow from the Sun MQ 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 java.lang.String imqConnectionFlowLimitEnabled

      This property indicates whether the Sun MQ Client should limit the flow of JMS messages from the Sun MQ 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 java.lang.String imqConnectionFlowLimit

      This property specifies the number of uncomsumed JMS messages that a Sun MQ Client can hold, above which the MQ Client will refrain from sending a 'resume flow' notification to the Sun MQ 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 Sun MQ 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 java.lang.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 java.lang.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 java.lang.String imqQueueBrowserRetrieveTimeout

      This property holds the the maximum time, in milliseconds, that a Sun MQ 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 java.lang.String imqQueueBrowserMaxMessagesPerRetrieve

      This property holds the the maximum number of messages that will be retrieved at one time when a Sun MQ 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 java.lang.String imqLoadMaxToServerSession

      This property indicates how the Sun MQ ConnectionConsumer should load messages into a ServerSession's JMS Session.

      When set to `true`, Sun MQ 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`, Sun MQ 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 java.lang.String imqOverrideJMSDeliveryMode

      This property indicates whether Sun MQ should override the JMS Message Header `JMSDeliveryMode` which can be set using the JMS APIs.

      When this property is set to `true` Sun MQ 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 java.lang.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 java.lang.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 java.lang.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 java.lang.String imqOverrideJMSExpiration

      This property indicates whether Sun MQ should override the JMS Message Header `JMSExpiration` which can be set using the JMS APIs.

      When this property is set to `true` Sun MQ 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 java.lang.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 java.lang.String imqOverrideJMSPriority

      This property indicates whether Sun MQ should override the JMS Message Header `JMSPriority` which can be set using the JMS APIs.

      When this property is set to `true` Sun MQ 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 java.lang.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 java.lang.String imqOverrideJMSHeadersToTemporaryDestinations

      This property indicates whether Sun MQ 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