# URI structure

Basically, the URI structure of a SOAP over JMS address looks like the following structure:

```
jms:<variant>:<destination_name>?jndiInitialContextFactory=<context_factory_class_name>&jndiConnectionFactoryName=
<connection_factory_name>&jndiURL=<JMS_broker_URL>
```

Where:

* variant can have the following values:

  | Variant | Description |
  | --- | --- |
  | jndi | Destination name is a jndi queue name |
  | jndi-topic | Destination name is a jndi topic name |
  | queue | Destination is a queue name resolved using JMS |
  | topic | Destination is a topic name resolved using JMS |

* destination\_name is basically the queue or topic name.

* context\_factory\_class\_name is the class name of a JNDI context factory which will be used to resolve a factory which creates connections to the broker.

* connection\_factory\_name is a platform-specific connection factory name (differs for Active MQ and Websphere MQ)

* JMS\_broker\_URL is a URL which will be used by the context resolve or create connection factory and destination objects.

But CXF provides the possibility to specify further JMS parameters:

| Query Parameter | Default Value | Description |
| --- | --- | --- |
| conduitIdSelectorPrefix |  | If set then this string will be the prefix for all correlation<br>ids the conduit creates and also be used in the selector for<br>listening to replies |
| deliveryMode | PERSISTENT | NON\_PERSISTENT messages will kept only in memory<br><br>PERSISTENT messages will be saved to disk |
| durableSubscriptionClientId |  | Optional Client identifier for the connection. The purpose is to<br>associate a connection with a state maintained on behalf of the<br>client by a provider. The only such state identified by the JMS API<br>is that required to support durable subscriptions. |
| durableSubscriptionName |  | Specifies the name used to register a durable<br>subscription. |
| jndiConnectionFactoryName | ConnectionFactory | Specifies the JNDI name bound to the JMS connection factory to<br>use when connecting to the JMS destination. |
| jndiInitialContextFactory |  | Specifies the fully qualified Java class name of the<br>"InitialContextFactory" implementation class to use. |
| jndiURL |  | Specifies the JNDI provider URL |
| jndi-\* |  | Additional parameters for a JNDI provider |
| messageType | byte | JMS message type used by CXF (byte, text or binary) |
| password |  | Password for creating the connection. Using this in the URI is<br>discouraged |
| priority | 4 | Priority for the messages. See your JMS provider documentation<br>for details. Values range from 0 to 9 where 0 is lowest<br>priority |
| replyToName |  | Specifies the JNDI name bound to the JMS destinations where<br>replies are sent |
| receiveTimeout | 60000 | Timeout in milliseconds the client waits for a reply in case of<br>request / repy exchanges |
| reconnectOnException | true | Should the transport reconnect in case of exceptions. From<br>version 3.0.0 on the transport will always reconnect in case of<br>exceptions |
| targetService |  | Used by the service implementation to dispatch the service<br>request. |
| timeToLive | 0 | Time (in ms) after which the message will be discarded by the jms<br>provider |
| topicReplyToName |  | Reply to messages on a topic with this name. Depending on the<br>variant this is either a jndi or jms name. |
| useConduitIdSelector | true | Each conduit is assigned with a UUID. If set to true this<br>conduit id will be the prefix for all correlation ids. This<br>allows several endpoints to share a JMS queue or topic |
| username |  | Username for creating the connection |

Some of these attributes are specified in the [JMS](http://tools.ietf.org/id/draft-merrick-jms-uri-06.txt) URI specification.

Further parameters are supported by the underlying CXF 3.x, namely jndiTransactionManager, which allows the configuration of JTA transactions around JMS message processing. However, this is an advanced feature for which it is recommended to read the CXF documentation and the documentation of the MOM in use.

Depending of the MOM used, the connection URI can look differently. For more information on how the address URI for connection to Active MQ looks like, see [Connecting to ActiveMQ](https://help.qlik.com/talend/en-US/esb-service-developer-guide/8.0/connecting-to-activemq), and for more information on how the address URI for connection to Websphere MQ looks like, see [Connecting to Websphere MQ](https://help.qlik.com/talend/en-US/esb-service-developer-guide/8.0/connecting-to-websphere-mq).

### In this section

* [Connecting to ActiveMQ](https://help.qlik.com/talend/en-US/esb-service-developer-guide/8.0/connecting-to-activemq)
* [Connecting to Websphere MQ](https://help.qlik.com/talend/en-US/esb-service-developer-guide/8.0/connecting-to-websphere-mq)
* [Installing IBM MQ client library JARs into an OSGI bundle](https://help.qlik.com/talend/en-US/esb-service-developer-guide/8.0/installing-ibm-mq-client-library-jars-into-osgi-bundle)