String
JMS Connector Reference 1.9 - Mule 4
JMS Connector Version 1.9
Anypoint Connector for JMS (JMS Connector) is a JMS 1.0.2b, 1.1, and 2.0 compliant MuleSoft Extension, used to consume and produce JMS messages. The extension supports all JMS functionality including topics and queues, durable subscribers, acknowledgment modes and local transactions.
Release Notes: JMS Connector Release Notes
Configurations
Default Configuration
Base configuration for JMS Connector
Parameters
Name | Type | Description | Default Value | Required |
---|---|---|---|---|
Name |
The name for this configuration. Connectors reference the configuration with this name. |
x |
||
Encoding |
String |
The default encoding of the message body to use if the message doesn’t communicate it |
||
Content Type |
String |
The default contentType of the message body to use if the message doesn’t communicate it |
/ |
|
Send Correlation Id |
Enumeration, one of:
|
Whether to specify a correlationId when publishing messages. This applies both for custom correlation IDs specifies at the operation level and for default correlation IDs taken from the current event |
AUTO |
|
Expiration Policy |
Configures the minimum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration. This does not mean that the platform expires the instance at the exact moment that it becomes eligible. Mule purges the instances as appropriate. |
|||
Ack Mode |
Enumeration, one of:
|
The ConsumerAckMode to use when consuming a message. Can be overridden at the message source level. This attribute has to be IMMEDIATE if transactionType is LOCAL or MULTI |
AUTO |
|
Consumer Type |
One of:
|
The ConsumerType to use by default when consuming a message. Can be overridden at the message source level. |
||
Selector |
String |
Default selector to use for filtering when consuming a message. Can be overridden at the message source level. |
||
Max Redelivery |
Number |
Do not configure this parameter here, as it has no effect. See [ActiveMQConnectionFactoryConfiguration] |
0 |
|
Persistent Delivery |
Boolean |
Sets the default value for the Message#getJMSDeliveryMode. If true, the DeliveryMode#PERSISTENT mode will be used, which instructs the JMS provider to take extra care to insure the message is not lost in transit due to a JMS provider failure. |
false |
|
Priority |
Number |
Defines the default Message#getJMSPriority to use when sending messages |
4 |
|
Time To Live |
Number |
Defines the default time the message is in the broker before it expires and is discarded |
0 |
|
Time To Live Unit |
Enumeration, one of:
|
A TimeUnit which qualifies the #timeToLive attribute. Defaults to MILLISECONDS |
MILLISECONDS |
|
Disable Message Id |
Boolean |
Defines the default value to use when producing messages, for disabling the Message#getJMSMessageID generation in the broker. Depending on the provider it may or may not have effect |
false |
|
Disable Message Timestamp |
Boolean |
Defines the default value to use, when producing messages, for disable Message#getJMSTimestamp generation in the broker. Depending on the provider it may or may not have effect. |
false |
|
Delivery Delay |
Number |
This is used to determine the message delivery delay time which is calculated by adding the deliveryDelay value specified on the send method to the time the message was sent. Only used in JmsSpecification#JMS_2_0 |
||
Delivery Delay Unit |
Enumeration, one of:
|
A TimeUnit which qualifies the #deliveryDelay attribute. Defaults to MILLISECONDS |
MILLISECONDS |
|
Jms Type |
String |
A message JMSType identifier supplied by a client when a message is sent. |
Operations
Consume
<jms:consume>
Operation that allows the user to consume a single message from a given Destination.
Parameters
Name | Type | Description | Default Value | Required |
---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Destination |
String |
The name of the Destination from where the message should be consumed |
x |
|
Consumer Type |
One of:
|
The type of the MessageConsumer that is required for the given destination, along with any extra configurations that are required based on the destination type. |
||
Ack Mode |
Enumeration, one of:
|
The ConsumerAckMode to configure over the message and Session |
||
Selector |
String |
A custom JMS selector for filtering the messages |
||
Content Type |
String |
The Message’s content type |
||
Encoding |
String |
The Message’s content encoding |
||
Maximum Wait |
Number |
Maximum time to wait for a message before timing out |
10000 |
|
Maximum Wait Unit |
Enumeration, one of:
|
Time unit to use in the maximumWaitTime configurations |
MILLISECONDS |
|
Transactional Action |
Enumeration, one of:
|
The type of joining action that operations can take regarding transactions. |
JOIN_IF_POSSIBLE |
|
Target Variable |
String |
The name of a variable to store the operation’s output. |
||
Target Value |
String |
An expression to evaluate against the operation’s output and store the expression outcome in the target variable |
|
|
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Publish
<jms:publish>
Operation that allows the user to send a message to a JMS Destination.
Parameters
Name | Type | Description | Default Value | Required |
---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Destination |
String |
The name of the Destination where the message should be sent |
x |
|
Destination Type |
Enumeration, one of:
|
The DestinationType of the destination |
QUEUE |
|
Transactional Action |
Enumeration, one of:
|
Transactional Action for the operation. Indicates if the publish must be executed or not in a transaction. |
JOIN_IF_POSSIBLE |
|
Send Correlation Id |
Enumeration, one of:
|
options on whether to include an outbound correlation ID or not |
||
Body |
Any |
The body of the message |
|
|
JMS Type |
String |
The JMSType header of the message |
||
Correlation ID |
String |
The JMSCorrelationID header of the message |
||
Send Content-Type |
Boolean |
True if the body type should be sent as a message property |
true |
|
Content-Type |
String |
The content type of the body |
||
Send Encoding |
Boolean |
True if the body outboundEncoding should be sent as a message property |
true |
|
Encoding |
String |
The outboundEncoding of the message’s body |
||
Reply To |
The JMSReplyTo header information of the Destination where this message should be replied to |
|||
User Properties |
Object |
The custom user properties that should be set to this message |
||
JMSX Properties |
The JMSX properties that should be set to this message |
|||
Persistent Delivery |
Boolean |
If true, the message is sent using the PERSISTENT JMSDeliveryMode |
||
Priority |
Number |
The default JMSPriority value to use when sending the message |
||
Time To Live |
Number |
Defines the default time the message is in the broker before it expires and is discarded |
||
Time To Live Unit |
Enumeration, one of:
|
Time unit to use in the timeToLive configurations |
||
Disable Message Id |
Boolean |
If true, the message is flagged to avoid generating its MessageID |
||
Disable Message Timestamp |
Boolean |
If true, the message is flagged to avoid generating its sent Timestamp |
||
Delivery Delay |
Number |
Only used by JMS 2.0. Sets the delivery delay to be applied to postpone the message delivery |
||
Delivery Delay Unit |
Enumeration, one of:
|
Time unit to use in the deliveryDelay configurations |
||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Publish Consume
<jms:publish-consume>
Operation that allows the user to send a message to a JMS Destination and waits for a response either to the provided ReplyTo destination or to a temporary Destination created dynamically.
Parameters
Name | Type | Description | Default Value | Required |
---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Destination |
String |
The name of the Destination where the message should be sent |
x |
|
Request-Reply Pattern |
Enumeration, one of:
|
CORRELATION_ID |
||
Send Correlation ID |
Enumeration, one of:
|
options on whether to include an outbound correlation ID or not |
||
Body |
Any |
The body of the message |
|
|
JMS Type |
String |
The JMSType header of the message |
||
Correlation ID |
String |
The JMSCorrelationID header of the message |
||
Send Content-Type |
Boolean |
True if the body type should be sent as a message property |
true |
|
Content-Type |
String |
The content type of the body |
||
Send Encoding |
Boolean |
True if the body outboundEncoding should be sent as a message property |
true |
|
Encoding |
String |
The outboundEncoding of the message’s body |
||
Reply To |
The JMSReplyTo header information of the Destination where this message should be replied to |
|||
User Properties |
Object |
The custom user properties that should be set to this message |
||
JMSX Properties |
The JMSX properties that should be set to this message |
|||
Persistent Delivery |
Boolean |
If true, the message is sent using the PERSISTENT JMSDeliveryMode |
||
Priority |
Number |
The default JMSPriority value to use when sending the message |
||
Time To Live |
Number |
Defines the default time the message is in the broker before it expires and is discarded |
||
Time To Live Unit |
Enumeration, one of:
|
Time unit to use in the timeToLive configurations |
||
Disable Message Id |
Boolean |
If true, the message is flagged to avoid generating its MessageID |
||
Disable Message Timestamp |
Boolean |
If true, the message is flagged to avoid generating its sent Timestamp |
||
Delivery Delay |
Number |
Only used by JMS 2.0. Sets the delivery delay to be applied to postpone the message delivery |
||
Delivery Delay Unit |
Enumeration, one of:
|
Time unit to use in the deliveryDelay configurations |
||
Ack Mode |
Enumeration, one of:
|
The Session ACK mode to use when consuming the message |
||
Maximum Wait |
Number |
Maximum time to wait for a message to arrive before timeout |
10000 |
|
Maximum Wait Unit |
Enumeration, one of:
|
Time unit to use in the maximumWaitTime configuration |
MILLISECONDS |
|
Content Type |
String |
The content type of the message body to be consumed |
||
Encoding |
String |
The encoding of the message body to be consumed |
||
Target Variable |
String |
The name of a variable to store the operation’s output. |
||
Target Value |
String |
An expression to evaluate against the operation’s output and store the expression outcome in the target variable |
|
|
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Ack
<jms:ack>
Allows the user to perform an ACK when the AckMode#MANUAL mode is elected while consuming the Message. As per JMS Spec, performing an ACK over a single message automatically works as an ACK for all the Messages produced in the same JmsSession.
Recover Session
<jms:recover-session>
Allows the user to perform a session recover when the AckMode#MANUAL mode is elected while consuming the Message. As per JMS Spec, performing a session recover automatically redelivers all the consumed messages that had not being acknowledged before this recover.
Sources
On New Message
<jms:listener>
JMS Subscriber for Destinations, allows to listen for incoming Messages
Parameters
Name | Type | Description | Default Value | Required |
---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Destination |
String |
The name of the Destination from where the message should be consumed |
x |
|
Consumer Type |
One of:
|
The Type of the Consumer that should be used for the provided destination |
||
Acknowledge Mode |
Enumeration, one of:
|
The Session ACK mode to use when consuming a message |
||
Selector |
String |
JMS selector to use for filtering incoming messages |
||
Inbound Content-Type |
String |
The content type of the message body |
||
Inbound Encoding |
String |
The inboundEncoding of the message body |
||
Number Of Consumers |
Number |
The number of concurrent consumers to use to receive JMS Messages |
4 |
|
Transactional Action |
Enumeration, one of:
|
The type of beginning action that sources can take regarding transactions. |
NONE |
|
Transaction Type |
Enumeration, one of:
|
The type of transaction to create. Availability depends on Mule version. |
LOCAL |
|
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in Cluster |
true |
|
Redelivery Policy |
Defines a policy for processing the redelivery of the same message |
|||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
|||
Ignore JMS replyTo header |
Boolean |
True if no automatic response is needed for messages with destination header |
false |
|
Body |
Any |
The body of the message |
|
|
JMS Type |
String |
The JMSType header of the message |
||
Correlation ID |
String |
The JMSCorrelationID header of the message |
||
Send Content-Type |
Boolean |
True if the body type should be sent as a message property |
true |
|
Content-Type |
String |
The content type of the body |
||
Send Encoding |
Boolean |
True if the body outboundEncoding should be sent as a message property |
true |
|
Encoding |
String |
The outboundEncoding of the message’s body |
||
Reply To |
The JMSReplyTo header information of the Destination where this message should be replied to |
|||
User Properties |
Object |
The custom user properties that should be set to this message |
||
JMSX Properties |
The JMSX properties that should be set to this message |
|||
Persistent Delivery |
Boolean |
Whether or not the delivery should be done with a persistent configuration |
||
Priority |
Number |
The default JMSPriority value to use when sending the message |
||
Time To Live |
Number |
Defines the default time the message is in the broker before it expires and is discarded |
||
Time To Live Unit |
Enumeration, one of:
|
Time unit to use in the timeToLive configurations |
||
Disable Message ID |
Boolean |
If true, the message is flagged to avoid generating its MessageID |
||
Disable Message Timestamp |
Boolean |
If true, the message is flagged to avoid generating its sent Timestamp |
||
Delivery Delay |
Number |
Only used by JMS 2.0. Sets the delivery delay to be applied to postpone the message delivery |
||
Delivery Delay Unit |
Enumeration, one of:
|
Time unit to use in the deliveryDelay configurations |
||
Send Correlation ID |
Enumeration, one of:
|
Options on whether to include an outbound correlation ID or not |
||
Request Reply Pattern |
Enumeration, one of:
|
Indicates which Request Reply Pattern to use. By default uses the Correlation ID of the incoming message to do the Reply-To. In case of configuring the message ID pattern, the ReplyTo will be performed using the message ID of the incoming message. If NONE is selected, not correlation ID will be configured automatically. |
CORRELATION_ID |
Types
Expiration Policy
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Max Idle Time |
Number |
A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration |
||
Time Unit |
Enumeration, one of:
|
A time unit that qualifies the maxIdleTime attribute |
JMS Attributes
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Properties |
Container element for all the properties present in a JMS Message. |
|||
Headers |
Any |
All the possible headers of a JMS message. |
x |
|
Ack Id |
String |
The session Ack ID required to acknowledge the current message if one is available, otherwise, it is null. |
JMS Message Properties
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
All |
Any |
All the properties of the JMS message as a flattened map. |
x |
|
User Properties |
Any |
The user-provided properties of the JMS message. |
x |
|
Jms Properties |
Any |
JMS message broker and provider properties. |
x |
|
Jmsx Properties |
JMSX properties of the JMS message. |
JMSX Properties
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Jmsx User ID |
String |
The user identity that sends the message. |
||
Jmsx App ID |
String |
Identity of the application that sends the message. |
||
Jmsx Delivery Count |
Number |
The number of message delivery attempts. |
||
Jmsx Group ID |
String |
The message group identity of the message. |
||
Jmsx Group Seq |
Number |
The sequence number of the message in the group. |
||
Jmsx Producer TXID |
String |
Identifier of the transaction that produced the message. |
||
Jmsx Consumer TXID |
String |
Identifier of the transaction that consumed the message. |
||
Jmsx Rcv Timestamp |
Number |
The time JMS delivered the message to the consumer. |
Redelivery Policy
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Max Redelivery |
Number |
Do not configure this parameter here, as it has no effect. See [ActiveMQConnectionFactoryConfiguration] |
0 |
|
Use Secure Hash |
Boolean |
Whether to use a secure hash algorithm to identify a redelivered message. |
||
Message Digest Algorithm |
String |
The secure hashing algorithm to use. If not set, the default is SHA-256. |
||
Id Expression |
String |
Defines one or more expressions to use to determine when a message has been redelivered. This property may only be set if useSecureHash is false. |
||
Object Store |
Object Store |
The object store where the redelivery counter for each message is stored. |
Reconnect
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Frequency |
Number |
How often to reconnect (in milliseconds) |
||
Count |
Number |
The number of reconnection attempts to make |
||
blocking |
Boolean |
If false, the reconnection strategy runs in a separate, non-blocking thread |
true |
Reconnect Forever
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Frequency |
Number |
How often in milliseconds to reconnect |
||
blocking |
Boolean |
If false, the reconnection strategy runs in a separate, non-blocking thread |
true |
JMS Destination
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Destination |
String |
The name that identifies the destination where to send a reply to a message. |
x |
|
Destination Type |
Enumeration, one of:
|
the type of this destination |
QUEUE |
JMSX Properties
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Jmsx User ID |
String |
The user identity that sends the message. |
||
Jmsx App ID |
String |
Identity of the application that sends the message. |
||
Jmsx Delivery Count |
Number |
The number of message delivery attempts. |
||
Jmsx Group ID |
String |
The message group identity of the message. |
||
Jmsx Group Seq |
Number |
The sequence number of the message in the group. |
||
Jmsx Producer TXID |
String |
Identifier of the transaction that produced the message. |
||
Jmsx Consumer TXID |
String |
Identifier of the transaction that consumed the message. |
||
Jmsx Rcv Timestamp |
Number |
The time JMS delivered the message to the consumer. |
TLS
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Enabled Protocols |
String |
A comma separated list of protocols enabled for this context. |
||
Enabled Cipher Suites |
String |
A comma separated list of cipher suites enabled for this context. |
||
Trust Store |
||||
Key Store |
||||
Revocation Check |
Trust Store
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Path |
String |
The location (which will be resolved relative to the current classpath and file system, if possible) of the trust store. |
||
Password |
String |
The password used to protect the trust store. |
||
Type |
String |
The type of store used. |
||
Algorithm |
String |
The algorithm used by the trust store. |
||
Insecure |
Boolean |
If true, no certificate validations will be performed, rendering connections vulnerable to attacks. Use at your own risk. |
Key Store
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Path |
String |
The location (which will be resolved relative to the current classpath and file system, if possible) of the key store. |
||
Type |
String |
The type of store used. |
||
Alias |
String |
When the key store contains many private keys, this attribute indicates the alias of the key that should be used. If not defined, the first key in the file will be used by default. |
||
Key Password |
String |
The password used to protect the private key. |
||
Password |
String |
The password used to protect the key store. |
||
Algorithm |
String |
The algorithm used by the key store. |
Standard Revocation Check
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Only End Entities |
Boolean |
Only verify the last element of the certificate chain. |
||
Prefer Crls |
Boolean |
Try CRL instead of OCSP first. |
||
No Fallback |
Boolean |
Do not use the secondary checking method (the one not selected before). |
||
Soft Fail |
Boolean |
Avoid verification failure when the revocation server can not be reached or is busy. |
Custom OCSP Responder
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Url |
String |
The URL of the OCSP responder. |
||
Cert Alias |
String |
Alias of the signing certificate for the OCSP response (must be in the trust store), if present. |
Reconnection
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Fails Deployment |
Boolean |
When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. |
||
Reconnection Strategy |
The reconnection strategy to use. |
Active MQ Connection Factory Configuration
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Broker Url |
String |
The address of the broker to connect |
vm://localhost?broker.persistent=false&broker.useJmx=false |
|
Enable Xa |
Boolean |
ConnectionFactory should support XA |
false |
|
Initial Redelivery Delay |
Number |
Used to configure the RedeliveryPolicy#getInitialRedeliveryDelay(). This feature is not available in an XA context. |
1000 |
|
Redelivery Delay |
Number |
Used to configure the RedeliveryPolicy#getRedeliveryDelay(). This feature is not available in an XA context. |
1000 |
|
Max Redelivery |
Number |
Used to configure the RedeliveryPolicy#getMaximumRedeliveries(). Sets the maximum number of times a message will be redelivered before it is sent to the Dead Letter Queue. No redelivery is represented with 0, while -1 means infinite re deliveries accepted. |
0 |
|
Trusted Packages |
Array of String |
Allowed packages of classes to send and receive. Starting with versions 5.12.2 and 5.13.0, ActiveMQ requires you to explicitly allow packages that can be exchanged using ObjectMessages. |
||
Trust All Packages |
Boolean |
Indicates if a class from any package can be sent and received. Enabling this parameter is unsafe because a malicious payload can exploit the host system. Starting with versions 5.12.2 and 5.13.0, ActiveMQ requires you to explicitly allow packages that can be exchanged using ObjectMessages. |
false |
Topic Consumer
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Durable |
Boolean |
Indicates if messages are cached when the client is not connected. |
false |
|
Shared |
Boolean |
Indicates if the subscription is shared among consumers. |
false |
|
No Local |
Boolean |
Inhibits the delivery of messages published by its own connection. |
false |
|
Subscription Name |
String |
Name of the subscription. |
Default Caching
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Session Cache Size |
Number |
Size of the session cache. |
||
Cache Producers |
Boolean |
Indicates whether or not to cache the producer. |
true |
|
Cache Consumers |
Boolean |
Indicates whether or not to cache the consumer. |
true |
JNDI Connection Factory
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Connection Factory Jndi Name |
String |
Name of the ConnectionFactory to be discovered using Jndi and used as a delegate of ConnectionFactory |
x |
|
Lookup Destination |
Enumeration, one of:
|
The Destinations |
NEVER |
|
Name Resolver Provider |
Provider for the JndiNameResolver |
x |
JNDI Name Resolver Provider
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Custom JNDI Name Resolver |
Reference to a custom JndiNameResolver implementation |
|||
Name Resolver Builder |
Properties required to build a SimpleJndiNameResolver |
JNDI Name Resolver Properties
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Jndi Initial Context Factory |
String |
The fully qualified name of the factory class that creates the initial context. |
x |
|
Jndi Provider Url |
String |
The JNDI service provider URL. |
||
Provider Properties |
Object |
Properties to pass to the JNDI Name Resolver Context |
Simple JNDI Name Resolver
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Context Factory |
Object |
The fully qualified name of the factory class that creates the initial context. |
||
Jndi Initial Factory |
String |
The name of the environment property for specifying the initial context factory to use. |
||
Jndi Provider Properties |
Object |
Properties to pass to the JNDI Name Resolver Context. |
||
Jndi Provider Url |
String |
URL of the JNDI provider. |
Cached JNDI Name Resolver
Field | Type | Description | Default Value | Required |
---|---|---|---|---|
Context Factory |
Object |
The fully qualified class name of the factory class that creates the initial context. |
||
Jndi Initial Factory |
String |
The name of the environment property for specifying the initial context factory to use. |
||
Jndi Provider Properties |
Object |
Properties to pass to the JNDI Name Resolver Context. |
||
Jndi Provider Url |
String |
URL of the JNDI provider. |
System Properties
You can configure the following system properties for the connector:
Property | Description |
---|---|
|
JKS file name that contains SSL certificates to add. |
|
Truststore password that you set for the |
Note that when you configure these system properties, do not configure the Caching strategy field to the Default caching (Default) option. Configure the field to No caching.