Data Connection Properties

This section discusses JMS properties associated with the JMS connection to the event broker.

Authentication Scheme

This property specifies the authentication scheme.

  • Supported by: For basic and client certificate authentication schemes, event brokers running Solace PubSub+ version 6.1 and higher. For a Kerberos authentication scheme, event brokers running Solace PubSub+ version 7.0 and higher. For an OAuth authentication scheme, event brokers running Solace PubSub+ version 9.13.1 and higher.
  • Type: String
  • Format must be one of the following:
    • SupportedProperty.AUTHENTICATION_SCHEME_BASIC (username/password authentication). This is the default authentication scheme.
    • SupportedProperty.AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE (Client Certificate Authentication)
    • SupportedProperty.AUTHENTICATION_SCHEME_GSS_KRB (Kerberos)
    • SupportedProperty.AUTHENTICATION_SCHEME_OAUTH2 (OAuth 2.0)
  • Default: SupportedProperty.AUTHENTICATION_SCHEME_BASIC

This property applies to both the JNDI and data connections.

Authentication Scheme

Property Source (in descending priority) Example

Initial Context

The example below shows how to enable Client Certificate authentication.

env.put(SupportedProperty.SOLACE_JMS_AUTHENTICATION_SCHEME, SupportedProperty.AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE);

JNDI Properties File

Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_BASIC

Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_GSS_KRB

Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE

Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_OAUTH2

Browser Timeout

This property specifies the maximum time in milliseconds for a QueueBrowser Enumeration.hasMoreElements() to wait for a message to arrive in the Browser’s local message buffer before returning. If there is already a message waiting, Enumeration.hasMoreElements() returns immediately.

  • Supported by: Solace JMS API version 6.2 or higher.
  • Type: Integer
  • Format: Any value. Default is -1. A value of 0 means wait forever (Enumeration.hasMoreElements() will return false only on closing the browser). A value < 0 will return immediately.
  • Default: –1

Browser Timeout Property

Property Source (in descending priority) Example

Initial Context

The example below shows how to set the browser timeout to 10000 ms.

env.put(SupportedProperty.SOLACE_JMS_BROWSER_TIMEOUT_IN_MS, "10000");

JNDI Properties File

Solace_JMS_Browser_Timeout_In_MS=10000

System

-DSolace_JMS_Browser_Timeout_In_MS=10000

Client Description

This property specifies the application description on the event broker for the data connection.

  • Supported by: event brokers running Solace PubSub+ version 5.0 and higher
  • Type: String
  • Format: Can be a maximum of 254 ASCII characters.
  • Default: “”

Client Description Property

Property Source (in descending priority) Example

Initial Context

env.put(SupportedProperty. SOLACE_JMS_CLIENT_DESCRIPTION, “My Client Description”);

JNDI Properties File

Solace_JMS_ClientDescription=My Client Description

JNDI Connection Factory

SolAdmin—Set through the Client Description box in the Client Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “client‑properties”, Property “client-description”.

Client ID

This property specifies the client name on the event broker for the data connection. The default client ID used is generated by the API.

  • Supported by: event brokers running Solace PubSub+ version 5.0 and higher
  • Type: String
  • Format: Must be a valid topic name. A maximum of 160 bytes is supported when encoded in UTF-8.
  • Default: A generated client ID

Client ID Property

Property Source (in descending priority) Example

JNDI Connection Factory

Soladmin—Set through the Client Id box in the Client Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “client-properties”, Property “client-id”.

All clients that use this Connection Factory will have the same client ID.

JMS API

Connection.setClientID(String clientID);

If the client ID is set in the Connection Factory, calling this function throws a javax.jms.IllegalStateException.

Compression Level

This property is used to enable and specify the ZLIB compression level.

  • Supported by: Solace PubSub+ event brokers
  • Type: Integer
  • Format: Valid values for the compression level are -1 through 9. -1 means use the JNDI connection’s compression level (refer to Compression Level). 0 means use no compression. 1 through 9 enables data compression (where 1 offers the least amount of compression and fastest data throughput, and 9 offers the most compression and slowest data throughput).
  • Default: –1

Compression Level Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Compression Level box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “compression‑level”.

Connect Retries

This property specifies the maximum number of times to attempt a data connection if the first connect fails. If this value is -1 or greater than 1, and a host list is used, each connect retry will traverse the host list according to the value set for the Connect Retries property.

  • Type: Integer
  • Format: Valid values are -1 through 2147483647. 0 means do not perform any automatic connection retries (that is, try once and give up); –1 means retry forever.
  • Default: 0

Connect Retries Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Connection Retries box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “connect-retries”.

Connect Retries Per Host

When using a list of hosts for the URL property, this property defines how many times to retry a data connection to a single host before moving on to the next host in the list.

  • Type: Integer
  • Format: Valid values are -1 through 2147483647. 0 means do not perform any automatic connection retries (that is, try once and give up); –1 means retry forever (that is, the API only tries to connect or reconnect to first host listed.)
  • Default: 0

This property works in conjunction with the connect and reconnect retries settings; it does not replace them.

Connect Retries per Host Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Connection Retries Per Host box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “connect‑retries-per-host”.

Connect Timeout

This property specifies the maximum amount of time (in milliseconds) permitted for a data connection attempt.

  • Type: Integer
  • Format: Valid values are 0 through 2147483647. 0 means wait forever.
  • Default: 30000 (that is, 30 seconds)

Connect Timeout Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Timeout for Initial Connection to appliance in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “connect‑timeout”.

Generate Sender ID

This property specifies whether the API generates a sender ID on published messages. If the message property is specified, that value will take precedence over generating one.

  • Supported by: Solace PubSub+ version 7.1 and higher.
  • Type: Boolean
  • Format: [true|false]
  • Default: false

Generate Sender ID Property

Property Source (in descending priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_GENERATE_SENDER_ID, true);

JNDI Properties File

Solace_JMS_GenerateSenderId=true

Guaranteed Delivery Reconnect Fail Action

This property specifies to the action to take after a client that was publishing Guaranteed messages is disconnected. The API can do one of the following:

  1. Clear the publisher state and reconnect the publisher flow. Then republish all unacknowledged messages and raise a SolProducerEvent (note that this may cause duplication).
  2. Do not automatically attempt to reconnect the client.
  • Supported by: Solace PubSub+ version 7.1.2 and higher.
  • Format: Valid values are SupportedProperty.GD_RECONNECT_FAIL_ACTION_AUTO_RETRY or SupportedProperty.GD_RECONNECT_FAIL_ACTION_DISCONNECT

  • Default: SupportedProperty.GD_RECONNECT_FAIL_ACTION_AUTO_RETRY

Generate Sender ID Property

Property Source (in descending priority) Example

System

-DSolace_JMS_GD_Reconnect_Fail_Action=gd_reconnect_fail_action_auto_retry

Initial Context

env.put(SupportedProperty.SOLACE_JMS_ GD_RECONNECT_FAIL_ACTION, SupportedProperty.GD_RECONNECT_FAIL_ACTION_AUTO_RETRY);

Host

This property specifies the IP address and port (optional) of the event broker to connect to.

This property is required if you are programmatically creating Connection Factories or looking up Connection Factories from LDAP JNDI stores. The values provided for the Hostproperty overrides the values implicitly set through the URL property used for the JNDI connection.

A host entry uses the following format:

<URI Scheme>://[username]:[password]@<IP address>[:port]

Where:

URI Scheme is the uniform resource identifier (URI) scheme used for the data connection lookup. The valid values are:

  • smf—use plain-text over SMF for communications between the application and the event broker. SMF is the default.
  • smfs—use TLS/ SSL protocols over SMF for secure communications between the application and the event broker
  • ws: or ws://—Use a WebSockets transport for communication between the application and the event broker.
  • wss: or wss://—Use a TLS/SSL channel over WebSockets for secure communication between the application and the event broker.

username is the user name that is required to authenticate a client connecting to an event broker. A client username can be used by a single or by multiple JMS clients.

password is the username password for the connection when authentication is required.

IP address is the IP address (or host name) of the event broker acting as the JMS broker. To specify a prioritized list of hosts that a client can attempt to connect to, list each IP address, in order of importance, separated by a comma.

port is the port number to use to establish the connection. A value is only required when the client needs to use a port other than the automatically‑assigned default port number. The default port number for is 55555 when compression is not in use, or 55003 when compression is in use. The default port for TLS/SSL connections (with or without compression) is 55443.

  • Type: String
  • Format: smf://username:password@ipaddress:port
  • Default: None

The provided URL parameters are used for both a JNDI connection and a JMS data connection. This is useful when both the JNDI and JMS data connections are for an event broker that provides JNDI and JMS service. However, when the JNDI store to be used is hosted on an LDAP server, and the event broker is only used for the JMS broker, the specified URL parameters, which are used for the JNDI connection, can be overridden by parameters specified in the Connection Factory when creating a JMS connection.

HostProperty

Property Source (in descending priority) Example

Initial Context

env.put(

InitialContext.PROVIDER_HOST, “smf://user:pwd@192.168.1.1:55555”);

System

-Djava.naming.provider.host=smf://192.168.1.1

JNDI Properties File

java.naming.provider.url=smf://192.168.1.1,smf://192.168.2.1

Host=smf://192.168.1.1,smf://192.168.2.1

This example shows a prioritized list of event brokers.

JAAS Login Context

This property specifies a name that applications use to refer to the entry in a login configuration file when they instantiate a LoginContext.

  • Type: String
  • Format: The name that refers to the entry in the login configuration file.
  • Default: SolaceGSS

JAAS Login Context Property

Property Source (in highest priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_JAAS_LOGIN_CONTEXT, “SolaceGSS”);

JAAS Configuration File Reload Enabled

This property, when true, indicates the login configuration file is reloaded before connect or reconnect to the event broker.

  • Type: Boolean
  • Format: [true | false]
  • Default: false (disabled)

JAAS Configuration File Reload Enabled Property

Property Source (in highest priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_JAAS_CONFIG_FILE_RELOAD_ENABLED, true);

JMSMessage ID Mode

This property is used to specify how the API should generate a JMSMessageID. It supports two modes:

  • SOLACE_JMS_JMS_MESSAGE_ID_MODE_DEFAULT—The default mode for generating JMSMessageIDs.
  • SOLACE_JMS_JMS_MESSAGE_ID_MODE_ASCII_ENCODED_HASH—A mode for generating fixed length JMSMessageIDs that are 23 characters long.
  • Supported by: Solace PubSub+ version 7.1.2 and higher
  • Type: String
  • Default: SupportedProperty.SOLACE_JMS_JMS_MESSAGE_ID_MODE_DEFAULT

The ASCII_ENCODED_HASH mode generates a 23 character, fixed length JMSMessageID. This mode has a small impact on message send performance compared to the default mode, which generates a longer ID that is not of fixed length.

JMSMessage ID Mode Property

Property Source (in descending priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_JMS_MESSAGE_ID_MODE,SupportedProperty.SOLACE_JMS_JMS_MESSAGE_ID_MODE_ASCII_ENCODED_HASH);

JNDI Properties File

Solace_JMS_MessageIDMode=ASCII_ENCODED_HASH

System

-DSolace_JMS_MessageIDMode=ASCII_ENCODED_HASH

Keep-Alive

This property is used to enable/disable application-level Keep-Alives.

  • Type: Boolean
  • Format: [true|false]
  • Default: true

Keep-Alive Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Enabled box of the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “keep‑alive‑enabled”.

Keep-Alive Interval

This property specifies the interval (in milliseconds) between application-level Keep-Alives. The API sends Keep-Alive messages to the event broker over the data connection at timed intervals. If a response is not received after the maximum number of consecutive Keep-Alive messages are sent, the API closes the connection.

  • Type: Integer
  • Format: Valid values are 50 and greater. 0 disables the use of Keep-Alives.
  • Default: 3000 (that is, three seconds)

Keep-Alive Interval Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Interval for Keep‑Alive Pings box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “keep‑alive‑interval”.

Keep-Alive Limit

This property specifies the number of consecutive application-level Keep-Alive messages that can be sent without receiving a response before the connection is closed by the API.

  • Type: Integer
  • Format: Valid values are 3 through 2147483647.
  • Default: 3

Keep-Alive Limit Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Max Number of Keep-Alive Pings in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “keep‑alive‑count‑max”.

Kerberos Mutual Authentication

This property specifies that mutual authentication is to be used when the Kerberos authentication scheme is enabled.

  • Supported by: Solace PubSub+ version 7.0 and higher
  • Type: Boolean
  • Format: [true|false]
  • Default: true

Kerberos Mutual Authentication Property

Property Source (in descending priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_KRB_MUTUAL_AUTHENTICATION, false);

JNDI Properties File

Solace_JMS_KRB_Mutual_Authentication=false

Kerberos Service Name

This property specifies the Service Name portion of the Kerberos Service Principal Name (SPN) that has a format of service_name/<customer-provided_host>@REALM

  • Supported by: Solace PubSub+ version 7.0 and higher
  • Type: String
  • Format: Any string. The total SPN value must not exceed 190 characters, including Service Name, Host FQDN, ‘@’ symbol, and ‘REALM’ name.
  • Default: “solace” (SupportedProperty.DEFAULT_KRB_SERVICE_NAME)

This property applies to both the JNDI and data connections.

Kerberos Service Name Property

Property Source (in descending priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_KRB_SERVICE_NAME, "solace");

JNDI Properties File

Solace_JMS_KRB_Service_Name=KRBName

Local Host

This property specifies the IP address of the local interface to use. By default, the operating system picks the interface. This property applies to both the JNDI and data connections.

  • Type: String
  • Format: IP address.
  • Default: None

Local Host Property

Property Source (in descending priority) Example

Initial Context

env.put(

SupportedProperty.SOLACE_JMS_LOCALHOST, "192.168.1.1");

JNDI Properties File

Solace_JMS_Localhost=192.168.1.1

System

-DJMS_Solace_localhost=192.168.1.1

OAuth2 Access Token

This property specifies an access token; Defined in OAuth, access tokens are issued by the authorization server after successfully authenticating the user and obtaining their consent. The access token is the artifact that allows an client application to access the user's resource when the OAuth 2.0 authentication scheme is enabled.

  • Supported by: Solace PubSub+ version 9.13.1 and higher
  • Type: String
  • Format: b64token, token max size specified on a broker, invalid property response if size exceeded.
  • Default: None

Local Host Property

Property Source (in descending priority) Exampe

Initial Context

env.put(SupportedProperty.SOLACE_JMS_OAUTH2_ACCESS_TOKEN, myAccessToken);

OAuth Issuer Identifier

This property specifies An Authorization Server Issuer Identifier (iss). This parameter can be used to provide support for explicit selection of the authorization server for token validation purposes on an event broker. The Message VPN on the event broker must have at least one Required Issuer configured for this parameter to have an effect (see Required Issuer).

  • Supported by: Solace PubSub+ version 9.13.1 and higher
  • Type: String
  • Format: Any string.
  • Default: None

Local Host Property

Property Source (in descending priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_OAUTH2_ISSUER_IDENTIFIER, issuerIdentifiereURL);

OIDC ID Token

This property specifies an OpenID Connect ID Token; OpenID Connect ID tokens are the artifact that allows an client application to access the user's resource when the when the Open ID Connect OAuth authentication scheme is enabled.

  • Supported by: Solace PubSub+ version 9.13.1 and higher
  • Type: String
  • Format: b64token, token max size specified on a broker, invalid property response if size exceeded.
  • Default: None

Local Host Property

Property Source (in descending priority) Example

Initial Context

env.put(SupportedProperty.SOLACE_JMS_OIDC_ID_TOKEN, myIdToken);

Password

This property specifies the password to connect to the event broker with. By default, no password is specified.

  • Type: String
  • Format: The maximum length is 128 characters.
  • Default: None

Password Property

Property Source (in descending priority) Example

JMS API

ConnectionFactory.createConnection(String username, String password);

Applies to just the data connection.

System

-Djava.naming.security.credentials=user1

Applies to both the JNDI and data connections.

Initial Context

env.put(SupportedPropertyContext.SECURITY_CREDENTIALS, user1);

Applies to both the JNDI and data connections.

JNDI Properties File

java.naming.security.credentials=user1

Applies to both the JNDI and data connections.

URL Property

smf://user1:pwd@192.168.1.1:55555

Applies to both the JNDI and data connections.With host lists there is the capability to specify a username or password in every URL. In this case the chosen username and password will be the first ones found in the URL list.

Port

This property specifies the port to use for the data connection.

  • Type: Integer
  • Format: Valid values are 0 through 65,535. -1 means use the same port as specified for the JNDI connection.
  • Default: –1

Port Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Port box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “port”.

Read Timeout

This property specifies the maximum amount of time (in milliseconds) permitted for reading a reply from the event broker.

  • Type: Integer
  • Format: Valid values are 0 through 2147483647.
  • Default: 10000 (that is, 10 seconds)

Read Timeout Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Timeout for Reading Reply from Appliance box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “read-timeout”.

Receive Buffer

This property is used to configure the socket’s receive buffer size in bytes.

  • Type: Integer
  • Format: Valid values 0 and greater.
  • Default: 65536

Receive Buffer Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Receive Socket Buffer box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “receive‑buffer”.

Reconnect Retries

This property specifies the number of times to attempt a reconnect once the data connection to an event broker has been lost.

When a host list of event brokers is provided, and no connection is reestablished to any of the hosts, the API can reattempt connecting to the listed hosts again starting with the first host listed. Each time the API works through the host list without establishing a reconnection is considered an reconnect retry. For example, if a Reconnect Retries value of two is used, the API could possibly work through all of the listed hosts without reconnecting to them three times: one time through for the initial connect attempt, and then two times through for reconnect retries.

After each unsuccessful attempt to reconnect to a host, the API waits for the amount of time set for Reconnect Retry Wait property (refer to Reconnect Retry Wait) before attempting another reconnection to a host. It should be noted that the number times to attempt to reconnect to one host before moving on to the next listed host is determined by the value set for the Connection Retries Per Host property (refer to Connect Retries Per Host).

  • Type: Integer
  • Format: Valid values are 0 through 2147483647. -1 means retry forever.
  • Default: 3

Reconnect Retries Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Number of Times to Attempt Reconnect box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “reconnect‑retries”.

Reconnect Retry Wait

If a connect or reconnect attempt to a host is not successful, the API waits the amount of time (in milliseconds) set for this property, and then makes another connect or reconnect attempt.

When using a list of hosts for the URL property (refer to URL), the Connect Retries Per Host property (refer to Connect Retries Per Host) sets how many connection or reconnection attempts can be made before moving on to the next host in the list.

  • Type: Integer
  • Format: Valid values are 0 through 60,000. 0 means do not wait.
  • Default: 3000 (that is, three seconds)

Reconnect Retry Wait Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Interval Between Reconnect Attempts box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “reconnect‑retry‑wait”.

Send Buffer

This property specifies the socket’s send buffer size (in bytes).

  • Type: Integer
  • Format: Valid values are greater than 0.
  • Default: 65536

Send Buffer Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the Send Socket Buffer box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property send‑buffer”.

TCP No Delay

This property specifies whether to set the TCP_NODELAY option. When enabled, this option disables Nagle’s algorithm.

  • Type: Boolean
  • Format: [true|false]
  • Default: true

TCP No Delay Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the TCP No Delay box in the Transport Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “transport‑properties”, Property “tcp-no-delay”.

URL

This property specifies the IP address and port (optional) of the event broker to connect to. A host entry uses the following format:

<URI Scheme>://[username]:[password]@<IP address>[:port]

Where:

URI Scheme is the uniform resource identifier (URI) scheme used for the data connection lookup. The valid values are:

  • smf—use plain-text over SMF for communications between the application and the event broker. SMF is the default.
  • smfs—use TLS/ SSL protocols over SMF for secure communications between the application and the event broker

username is the user name that is required to authenticate a client connecting to an event broker. A client username can be used by a single or by multiple JMS clients.

password is the username password for the connection when authentication is required.

IP address is the IP address (or host name) of the event broker acting as the JMS broker. To specify a prioritized list of hosts that a client can attempt to connect to, list each IP address, in order of importance, separated by a comma.

port is the port number to use to establish the connection. A value is only required when the client needs to use a port other than the automatically‑assigned default port number. The default port number for is 55555 when compression is not in use, or 55003 when compression is in use. The default port for TLS/SSL connections (with or without compression) is 55443.

  • Type: String
  • Format: smf://username:password@ipaddress:port
  • Default: None

The provided URL parameters are used for both a JNDI connection and a JMS data connection. This is useful when both the JNDI and JMS data connections are for an event broker that provides JNDI and JMS service. However, when the JNDI store to be used is hosted on an LDAP server, and the event broker is only used for the JMS broker, the specified URL parameters, which are used for the JNDI connection, can be overridden by parameters specified in the Connection Factory when creating a JMS connection.

URL Property

Property Source (in descending priority) Example

Initial Context

env.put(

InitialContext.PROVIDER_URL, “smf://user:pwd@192.168.1.1:55555”);

System

-Djava.naming.provider.url=smf://192.168.1.1

JNDI Properties File

java.naming.provider.url=smf://192.168.1.1,smf://192.168.2.1

Host=smf://192.168.1.1,smf://192.168.2.1

This example shows a prioritized list of event brokers.

Username

This property specifies the username to connect to the event broker with. By default, the username specified for the JNDI connection is used. However, that username can be overwritten when one is specified for a JMS connection.

  • Type: String
  • Format: The maximum length is 32 characters.
  • Default: Use the same username as the JNDI connection.

Username Property

Property Source (in descending priority) Example

JMS API

ConnectionFactory.createConnection(String username, String password);

Applies to only the data connection.

System

-Djava.naming.security.principal=user1

Applies to both the JNDI and data connections.

Initial Context

env.put(SupportedPropertyContext.SECURITY_PRINCIPAL, user1);

Applies to both the JNDI and data connections.

File

java.naming.security.principal=user1

Applies to both the JNDI and data connections.

URL

smf://user1:pwd@192.168.1.1:55555

Applies to both the JNDI and data connections. With host lists there is the capability to specify a username or password in every URL. In this case, the chosen username and password are the first ones found in the URL list.

VPN

This property specifies the Message VPN to use when connecting to the event broker. This property applies to both the JNDI and data connections. The default value is blank, which means connect to the Message VPN default.

  • Type: String
  • Format: The maximum length is 32 bytes when encoded in UTF-8.
  • Default: “”

VPN Property

Property Source (in descending priority) Example

System

-DSolace_JMS_VPN=myVPN

Initial Context

env.put(

SupportedProperty.SOLACE_JMS_VPN, “myVPN”);

File

Solace_JMS_VPN=myVPN

XA

This property specifies whether a Connection Factory is XA-enabled. When a lookup is performed on a Connection Factory with this property enabled, the resulting Connection Factory can be cast to an XAConnectionFactory, XAQueueConnectionFactory, or an XATopicConnectionFactory.

  • Type: Boolean
  • Format: [true|false]
  • Default: false (the Connection Factory is not XA-enabled).

Use Default Context Property

Property Source Example

JNDI Connection Factory

SolAdmin—Set through the XA check box in the Messaging Properties tab of the New JMS Connection Factory or Edit JMS Connection Factory dialog box.

CLI/SEMP—Set through Property List “messaging‑properties”, Property “xa”.