Use a JMS Providers policy to configure connections details on message flows to JMS providers. Templates are provided for a variety of JMS providers.
You use JMS nodes in a message flow to send and receive messages to and from JMS destinations. JMS destinations are accessed through a connection to a JMS provider. You can use a JMS Providers policy to control, at run time, connection details to different JMS providers. A number of templates are provided for supported providers that provide relevant default values.
To attach a JMS Providers policy to a JMS node, set the JMS provider name property of the JMSInput, JMSOutput, JMSReceive, or JMSReply node to the name of the policy, in the format {policyProjectName}:policyName. You must deploy this policy before the associated message flow is started.
Property | Property name in .policyxml file | Value |
---|---|---|
Type 4 driver class JARs URL | jarsURL | This property specifies a URL for the file location of the JMS provider JAR files. Omit
file:// from the URL. To connect to different versions of the same JMS provider (for example, JBoss), create a JMS Providers policy for each version of the JMS provider, then set this property to a unique path. This property has a default value of default_Path. Value type: String |
Native libraries | nativeLibs | This property specifies the file location of any libraries that the JMS provider owns. This
property has a default value of default_Path. Value type: String |
Proprietary API handler | proprietaryAPIHandler | This property specifies the name of the IBM-supplied Java class to interface with a
proprietary API of a JMS provider. The default value is default_none.
Value type: String |
Proprietary API attributes 1-5 | proprietaryAPIAttr1 |
The usage of these optional properties is specific to a vendor interface and their meaning is
determined by the IBM proprietary API Handler. You might use these attributes on one or more method
calls to the vendor proprietary API. These properties have a default value of
default_none. Value type: String |
JNDI environment parameters | jndiEnvironmentParms | This property contains a list of JNDI environment parameters that are expressed as name-value
pairs, and separated by semicolons. Use these parameters in JMSInput, JMSOutput, and
JMSReply nodes. This property has a default value of
default_none. Value type: String |
Client acknowledgment batch size | clientAckBatchSize | This property controls how JMS message flows send a batch acknowledgment of non-transactional
messages that have been received. The value of this property is an integer that represents the
threshold number of messages received before the batch acknowledgment is sent. You can use this property in combination with the Client acknowledgment batch interval property. If both properties are set, and the time interval set on Client acknowledgment batch interval has expired, the batch acknowledgment is sent even if the Client acknowledgment batch size threshold for the number of received messages has not been reached. A batch acknowledgment is also sent in the following circumstances:
The minimum non-zero value is 2. To disable batch acknowledgment, set Client acknowledgment batch size to 0 and ensure that Client acknowledgment batch interval is set to 0. This property has a default value of 0.Value type: Integer |
Client acknowledgment batch interval | clientAckBatchTime | This property controls how JMS message flows send a batch acknowledgment of non-transactional
messages that have been received. The value of this property is an integer that represents the
length, in milliseconds, of a repeating interval. At the end of each interval, a batch
acknowledgment is sent for all unacknowledged non-transactional JMS messages that were received
during the preceding interval. You can use this property in combination with the Client acknowledgment batch size property. If both properties are set, and the threshold set on Client acknowledgment batch size is reached, the batch acknowledgment is sent even if the time interval specified by Client acknowledgment batch interval has not yet expired. A batch acknowledgment is also sent when:
To disable batch acknowledgment, set Client acknowledgment batch interval to 0 and ensure that Client acknowledgment batch size is set to 0. This property has a default value of 0.Value type: Integer |
JNDI bindings location | jndiBindingsLocation | This property specifies the location that is used to look up JNDI Administered objects, such
as Connection Factories and Destinations. If you set this property, it overrides the property that
is set on a node that uses this JMS provider. Value type: String |
Initial context factory | initialContextFactory | This property specifies the fully qualified class name of the class that is used to perform
JNDI lookups. If you set this property, it overrides the property that is set on a node that uses
this JMS provider. If you need additional security, you must set this property (see Securing JMS connections and JNDI lookups). Value type: String |
Handle connection exceptions asynchronously | jmsAsyncExceptionHandling | This property specifies whether the integration server registers an
exception listener on the JMS connection when the connection is created, and handles connection
exceptions asynchronously from the main flow. When this property is set to
True, the integration server can detect when the
connection has been broken and can try to reconnect. Value type: Boolean |
Connection factory name | connectionFactoryName | This property specifies the name of the connection factory that is used to create a
connection to the JMS provider. If you set this property, it overrides the property on a node that
uses this JMS provider, but it can be overridden by a local environment override. If you need additional security, you must set this property (see Securing JMS connections and JNDI lookups). Value type: String |
XA is supported | jmsProviderXASupport | This property indicates whether the selected JMS provider supports XA coordinated
transactions (see Configuring JMS and SOAP nodes to support globally coordinated transactions). The default value for this property is
True. If you set this property to True, and the selected JMS provider does not support XA transactions, an exception is raised. If you set this property to False, but the Transaction mode property on the node is set to Yes and the Coordinated Transaction message flow property is selected, an exception is raised. Value type: Boolean |
JNDI environment object | jndiEnvironmentObject | This property defines an object that can be used for JNDI administered objects in the
following format:
where
<object type> is java.util.Vector and <name of
object env> is the name that is given to the vector. For
example:
The string values for the vector are defined in the JNDI environment object parameters 1-5 property. Value type: String |
JNDI environment object parameters 1-5 | jndiEnvironmentObjectParm1 |
This property defines the values that are added to the vector that is specified in the
JNDI environment object property. Value type: String |