JMSAdapter.xml
This file specifies the schema for the configuration required by the JMS adapter. Note that JMS topics and queues are referred to only as destinations. Topics refers exclusively to Diffusion topics.
JMSRootConfig
The mandatory root node of the JMS adapter configuration.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
topics | JMSTopicsConfig | The set of Diffusion topics created at startup. | 0 | 1 |
providers | JMSProvidersConfig | The set of JMS providers. | 1 | 1 |
server-connection | ServerConnectionConfig | Configuration specific to the JMS adapter when run as a client. | 0 | 1 |
JMSTopicsConfig
The set of Diffusion topics created at startup. Diffusion Unified client messaging does not require an existing topic, but Diffusion publishing and Diffusion Classic client messaging do.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
stateful | JMSStatefulTopicConfig | The configuration required to create a stateful Diffusion topic, including the initial state of the topic. | 0 | unbounded |
stateless | JMSTopicConfig | The configuration required to create a Diffusion topic. | 0 | unbounded |
JMSTopicConfig
The configuration required to create a Diffusion .
Name | Type | Description | Required |
---|---|---|---|
name | xs:string | The full topic path of the topic to create. For example, 'foo/bar/baz'. | true |
reference | xs:string | DEPRECATED: This is no longer used and will be removed in a future release. | false |
JMSStatefulTopicConfig
Name | Type | Description | Required |
---|---|---|---|
initialState | xs:string | The initial state of a topic when the topic is created. | false |
JNDIPropertiesConfig
The set of named values required to to create an InitialContext to access the JNDI configuration of the JMS server. Individual JMS providers will provide documentation on this step.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
property | JNDIProperty | A named value. | 0 | unbounded |
JNDIProperty
A named value.
Name | Type | Description | Required |
---|---|---|---|
name | xs:string | The property name. | true |
value | xs:string | The property value. | true |
JMSProviderConfig
The configuration model to connect to a JMS provider (a broker), establish sessions, subscribe, and publish to destinations.
Name | Type | Description | Required |
---|---|---|---|
name | xs:string | The name associated with this configuration model. | false |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
jndiProperties | JNDIPropertiesConfig | The set of named values required to to create an InitialContext to access the JNDI configuration of the JMS server. | 1 | 1 |
jmsProperties | JMSConnectionConfig | The configuration related to connection to the JMS provider. | 1 | 1 |
sessions | JMSSessionsConfig | The configuration for all JMS sessions related to this JMS provider. | 1 | 1 |
reconnection | JMSReconnectionConfig | The configuration for reconnection behavior. | 0 | 1 |
subscriptions | JMSSubscriptionsConfig | The set of subscriptions to JMS destinations. | 0 | 1 |
publications | JMSPublicationsConfig | The set of publications to JMS destinations. | 0 | 1 |
JMSProvidersConfig
The set of JMS providers.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
provider | JMSProviderConfig | The configuration model to connect to a JMS provider. | 0 | unbounded |
JMSSessionsConfig
The configuration for all JMS sessions related to this JMS provider.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
anonymousSessions | JMSAnonymousSessionsConfig | A number of JMS sessions shared between JMSSubscriptions. | 1 | 1 |
namedSessions | JMSNamedSessionsConfig | The set of named JMS sessions, optionally used by JMSSubscription nodes in order to guarantee ordering, or use specific JMS session properties. | 0 | 1 |
JMSAnonymousSessionsConfig
A number of JMS sessions shared between JMSSubscriptions.
Name | Type | Description | Required |
---|---|---|---|
number | PositiveInteger | The number of shared JMS sessions | true |
JMSNamedSessionsConfig
The set of named JMS sessions, optionally used by JMSSubscription nodes in order to guarantee ordering, or use specific JMS session properties.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
session | JMSNamedSessionConfig | A named set of configuration relating to the placing of a JMS session. | 1 | unbounded |
JMSReconnectionConfig
Following a disconnection event the adapter optionally attempts periodic reconnection. The first reconnection attempt occurs after minFrequency seconds, and the following after twice that number. The back-off time value doubles until it reaches the maxFrequency value in seconds. For example, where minFrequency=2 and maxFrequency=10, the reconnection will be attempted after 2s, 4s, 8s, 10s, 10s and so on.
Name | Type | Description | Required |
---|---|---|---|
minFrequency | PositiveInteger | The interval between disconnection and the first reconnection attempt (in seconds). The interval is doubled for each subsequent reconnection attempt. | true |
maxFrequency | PositiveInteger | The maximum interval between reconnection attempts. | true |
JMSSubscriptionsConfig
The set of subscriptions to JMS destinations.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
subscription | JMSSubscriptionConfig | Configuration to subscribe to a JMS destination and relay to Diffusion topics or messaging or both. | 0 | unbounded |
JMSPublicationsConfig
The set of publications to JMS destinations.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
publication | JMSPublicationConfig | Configuration to receive Diffusion topic messaging and relay to a JMS destination. | 0 | unbounded |
JMSSubscriptionConfig
Configuration to subscribe to a JMS destination and relay to Diffusion topics
Name | Type | Description | Required |
---|---|---|---|
sessionName | xs:string | The name of the session to use. This session name must be defined in the namedSessions element. If this element is not defined, the JMS adapter does not start. | false |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
destination | JmsURI | The URI of the JMS destination. | 1 | 1 |
options | JMSSubscriptionOptions | Configuration relating to publishing in JMS. | 0 | 1 |
messaging | ClientMessagingConfig | Configuration relating to the sending of a Diffusion message to a single Diffusion client. | 0 | 1 |
publish | TopicPublishingConfig | Configuration relating to the publishing of a message or setting of a topic's state. | 0 | 1 |
JMSPublicationConfig
Configuration to receive Diffusion topic messaging and relay to a JMS destination.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
destination | JmsURI | The URI of the JMS destination. | 1 | 1 |
options | JMSPublicationOptionsConfig | Configuration relating to publishing to JMS destinations. | 0 | 1 |
messaging | ClientMessagingConfig | Configuration relating to the sending of a Diffusion message to a single Diffusion client. | 0 | 1 |
JMSSubscriptionOptions
Options employed when subscribing to a JMS destination.
Name | Type | Description | Required |
---|---|---|---|
noLocal | xs:boolean | Inhibits the delivery of messages published through its own connection. | false |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
selector | xs:string | SQL 92 compliant expression used to filter messages received from a JMS destination. | 0 | 1 |
JMSPublicationOptionsConfig
Name | Type | Description | Required |
---|---|---|---|
ttl | PositiveInteger | The Time-To-Live value for a published JMS message, in milliseconds | false |
priority | JMSPriorityRange | The higher the number, the higher the priority. | false |
deliveryMode | JMSDeliveryMode | Maps to javax.jms.DeliveryMode | false |
ClientEndpointConfig
Name | Type | Description | Required |
---|---|---|---|
topicName | xs:string | The topic path used by this end point. Depending on the task it might not need to relate to an existing topic. | true |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
transformation | MessageTransformationConfig | The transformation type to use for messages relayed to and from this topic. | 0 | 1 |
MessageTransformationConfig
Name | Type | Description | Required |
---|---|---|---|
type | MessageTransformationType | The tranformation employed when relaying Diffusion to JMS messages, or JMS to Diffusion messages. | false |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
sessionProperties | SessionPropertyMappings | The set of session property mappings. | 0 | 1 |
TopicPublishingConfig
Configuration relating to the publishing of a message or setting of a topic's state.
ClientMessagingConfig
Configuration relating to the sending of a Diffusion message to a single Diffusion client.
Name | Type | Description | Required |
---|---|---|---|
routingProperty | xs:string | The routingProperty attribute describes a facet of the JMS TextMessage that contains the destination Diffusion client SessionID. | false |
SessionPropertyMapping
A mapping from Diffusion session properties to JMS message metadata (JMS headers or properties).
Name | Type | Description | Required |
---|---|---|---|
from | xs:string | Currently limited to $Principal | true |
to | xs:string | Values starting with "JMS" are mapped into JMS headers (for example, JMSType), others are mapped into JMS message properties. | true |
SessionPropertyMappings
The set of SessionPropertyMappings.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
sessionProperty | SessionPropertyMapping | A session property name. Currently, only $Principal is supported. | 1 | 1 |
JMSCredentialsConfig
A username and password pair.
JMSConnectionConfig
The configuration related to connection to the JMS provider.
Name | Type | Description | Required |
---|---|---|---|
connectionFactoryName | xs:string | The name of the connection factory to use. | true |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
credentials | JMSCredentialsConfig | Optional credentials, used when connecting to the JMS provider | 0 | 1 |
JMSSessionConfig
All configuration relating to the placing of a JMS session.
Name | Type | Description | Required |
---|---|---|---|
transacted | xs:boolean | Currently unsupported. | false |
acknowledgeMode | JMSSessionAcknowledgeMode | Currently unsupported. | false |
JMSNamedSessionConfig
A JMSSessionConfig that can be referred to by name.
Name | Type | Description | Required |
---|---|---|---|
name | xs:string | Name used to refer to the session elsewhere in the JMSProviderConfig. | true |
ServerAuthenticationConfig
Optional session authentication details. The adapter defaults to establishing an anonymous session. Note: The JMS adapter requires a session that has the TOPIC_CONTROL role. Either assign the TOPIC_CONTROL role to the anonymous principal or specify a principal with this role for the JMS adapter to use to make the connection.
Name | Type | Description | Required |
---|---|---|---|
principal | xs:string | The principal used during authentication. | true |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
password | xs:string | Optional plain text password using during authentication. | 1 | 1 |
ServerConfig
Name | Type | Description | Required |
---|---|---|---|
reconnection | SessionReconnection | The timeout duration in milliseconds used when attempting to reconnect, or 'none' to prevent any reconnection attempts. | false |
url | xs:string | Location of the server to which the adapter connects. | false |
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
authentication | ServerAuthenticationConfig | Optional session authentication details. The adapter defaults to establishing an anonymous session. Note: The JMS adapter requires a session that has the TOPIC_CONTROL role. Either assign the TOPIC_CONTROL role to the anonymous principal or specify a principal with this role for the JMS adapter to use to make the connection. | 0 | 1 |
ClientEditionProperties
Set of properties defined for the JMS adapter running as a client.
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
serverName | xs:string | Mandatory value for placeholder '${serverName}' used in JMS request-reply scenarios. | 1 | 1 |
ServerConnectionConfig
Configuration specific to the JMS adapter when run as a client. When run as a publisher this is ignored
Name | Type | Description | Min occurs | Max occurs |
---|---|---|---|---|
server | ServerConfig | Location and authentication details of the Diffusion server. | 1 | 1 |
properties | ClientEditionProperties | Set of properties defined for the JMS adapter running as a client. | 1 | 1 |
PositiveInteger
Any whole number greater than or equal to 1.
This value must be a xs:int.
SessionReconnection
Any integer or the string 'none'.
This value must be a xs:string.
JmsURI
A URI string conforming to RFC6167 (https://tools.ietf.org/html/rfc6167).
This value must be a xs:string.
HexString
Arbitrary number of hex pairs. Decodable as binary data
This value must be a xs:string.
JMSPriorityRange
JMS message priorities range from 0 to 9. Higher numbers are higher priority. The default is 4.
This value must be a xs:int.
JMSSessionAcknowledgeMode
The set of all JMS acknowledgment options. Currently only AUTO_ACKNOWLEDGE is supported. Relates to the constants defined in javax.jms.Session.
This value must be a xs:string.
- AUTO_ACKNOWLEDGE
- CLIENT_ACKNOWLEDGE
- DUPS_OK_ACKNOWLEDGE
- SESSION_TRANSACTED
JMSDeliveryMode
The set of all JMS delivery options. Relates to the constants defined in javax.jms.DeliveryMode
This value must be a xs:string.
- NON_PERSISTENT
- PERSISTENT
MessageTransformationType
The set of message transformation options, used when relaying messages in both directions between JMS and Diffusion.
This value must be a xs:string.
- basic
- JSON